第一个索引后Cocoa无法访问数组元素?

时间:2011-10-08 22:05:48

标签: objective-c cocoa

为什么会崩溃?

NSArray *domain = [webView.request.URL.absoluteString componentsSeparatedByString:@"/"];
NSString *str1 = [domain objectAtIndex:2];

这是我得到的错误:

*** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[NSArray objectAtIndex:]: index 2 beyond bounds [0 .. 0]'

我能够使用objectAtIndex:0就好了。

2 个答案:

答案 0 :(得分:2)

该错误讨论了带有元素的数组。您正在考虑的那个包含的元素多于零。你确定你正在寻找合适的东西吗?此外,如果您多次调用该代码,可能会出现一次使用一个值而另一个值在下次运行时的情况。

在该行放置一个断点,看看每次迭代时domain的值是多少。

答案 1 :(得分:1)

在这些行之间插入NSLog(@"%@",domain);,看看你在数组中实际得到了什么。听起来你正在拆分的字符串中有斜线,这会给你两个元素。 NSArray索引从零开始,就像C数组一样。

  

为什么Cocoa在*?

中真是太该死了?

您是否只是磕磕绊绊地试图通过反复试验来教自己,或者您是否花时间研究任何教程?