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

Objective c Cocoa无法在第一个索引之后访问数组元素?,objective-c,cocoa,Objective C,Cocoa,为什么会崩溃 NSArray *domain = [webView.request.URL.absoluteString componentsSeparatedByString:@"/"]; NSString *str1 = [domain objectAtIndex:2]; 这是我得到的错误: *** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[NSArray objectAtInd

为什么会崩溃

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

插入
NSLog(@“%@”,域)在这些行之间,并查看您在数组中实际得到的内容。听起来你要拆分的字符串中有一个斜杠,它会给你两个元素。NSArray索引是基于零的,就像C数组一样

为什么可可粉会让人如此痛苦

您是否只是跌跌撞撞地试图通过尝试和错误来自学,或者您是否花时间阅读了任何教程?

Insert
NSLog(@“%@”,domain)在这些行之间,并查看您在数组中实际得到的内容。听起来你要拆分的字符串中有一个斜杠,它会给你两个元素。NSArray索引是基于零的,就像C数组一样

为什么可可粉会让人如此痛苦


您是否只是跌跌撞撞地试图通过尝试和错误来自学,或者您是否花时间阅读了任何教程?

错误涉及到零元素数组。您正在考虑的一个包含的元素不止零个。你确定你看的对吗?此外,如果您多次调用该代码,则可能会出现这样的情况:一旦它使用一个值,下一次运行时使用另一个值


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

该错误涉及一个包含零元素的数组。您正在考虑的一个包含的元素不止零个。你确定你看的对吗?此外,如果您多次调用该代码,则可能会出现这样的情况:一旦它使用一个值,下一次运行时使用另一个值



在该行上设置断点,看看每个代码中的代码>域< /C>的值。< /P>这不是C++,按任何标准。@ ALL:关于2。问题,请忽略它,不要发动任何火战。谢谢这不是C++,任何标准。@ ALL:关于2。问题,请忽略它,不要发动任何火战。谢谢这就是我得到的:

“http:”,“,”www.google.com“,“?q=test”
尝试和错误,以及搜索教程。没想到会这么复杂。我正在写几行代码来做一些我通常在一行中做的事情…@user969622,对于使用全新编程语言的用户来说,这是很常见的,他们以前从来并没有见过这种语言,要写几行代码来做一些他们通常在一行中用他们知道的语言做的事情。如果你在日志中看到了这一点,那么objectAtIndex:2就可以了。在创建数组和访问数组之间还有其他代码吗?这就是我得到的:
“http:”、“、”www.google.com“、”q=test“
尝试和错误,以及通过教程进行搜索。没想到会这么复杂。我正在写几行代码来做一些我通常在一行中做的事情…@user969622,对于使用全新编程语言的用户来说,这是很常见的,他们以前从来并没有见过这种语言,要写几行代码来做一些他们通常在一行中用他们知道的语言做的事情。如果你在日志中看到了这一点,那么objectAtIndex:2就可以了。在创建数组和访问数组之间还有其他代码吗?好吧,假设数组没有元素,那么如何防止它崩溃呢?如何首先检查元素是否存在,如果存在,如何继续?@user969622,使用
NSArray
的方法查看数组是否为空,或者查看您要查找的索引是否确实存在(如果它高于元素总数,则当然不存在)。为便于将来参考,请查看类文档和“任务”类别。您将找到按用途分类的受支持方法。我尝试了
NSMutableArray*domain=[webView.request.URL.absoluteString组件通过字符串分离:@“/”;NSInteger*计数=[域计数]但它在最后一个line@user969622,没问题。请检查文档,文档编写和索引都很好。@user969622:
NSInteger
与类不同,
-[NSArray count]
返回一个
NSInteger
,而不是指向
NSInteger
的指针。因此,您需要将
count
变量声明为
nsuiger count
,使用
U
和不使用
*
。好吧,假设数组没有元素,那么如何防止它崩溃?如何首先检查元素是否存在,如果存在,如何继续?@user969622,使用
NSArray
的方法查看数组是否为空,或者查看您要查找的索引是否确实存在(如果它高于元素总数,则当然不存在)。为便于将来参考,请查看类文档和“任务”类别。您将找到按用途分类的受支持方法。我尝试了
NSMutableArray*domain=[webView.request.URL.absoluteString组件通过字符串分离:@“/”;NSInteger*计数=[域计数]但它在最后一个line@user969622,没问题。请检查文档,文档编写和索引都很好。@user969622:
NSInteger
与类不同,
-[NSArray count]
返回一个
NSInteger
,而不是指向
NSInteger
的指针。因此,您需要将
count
变量声明为
nsuiger count
,使用
U
而不使用
*