数组问题

时间:2010-05-20 09:56:36

标签: iphone ios iphone-sdk-3.0 nsarray

在此行中收到错误:

NSString *nmm =[narr objectAtIndex:1];

错误显示:

  

'NSRangeException',原因:'*** - [NSCFArray objectAtIndex:]:index   (1)超出界限(1)'

2 个答案:

答案 0 :(得分:1)

看起来您的数组只有一个值(您可以在索引0处访问,而不是索引1)。

答案 1 :(得分:1)

您应该首先在运行时检查narr的内容。听起来内容并不是您期望它们处于执行期望的位置。在您在问题中发布的行之前,使用NSLog调用来记录数组的内容,如下所示:

NSLog(@"Contents of array: %@", narr);

然后运行应用程序并在出现错误后检查控制台。花些时间学习如何使用NSLog,断点和GDB控制台 - 它们最终会在调试时为您节省很多麻烦。

您对unset的回答的评论提出了另一点:为什么要在同一个字符串中存储多个数据?将namelnameid分隔成单独的字符串并将每个字符串放入其自己的数组单元格中会不会更容易?然后,您可以使用[narr objectAtIndex:]访问它们,而无需担心每次需要其中一条信息时都要解析字符串。