所以我使用plist文件存储NSMutableArray,添加对象时也将其保存到该plist文件中。但是我收到了这个错误:
Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayI objectAtIndex:]: index 1 beyond bounds [0 .. 0]'
代码:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:1];
_prsPath = [documentsDirectory stringByAppendingPathComponent:@"records.plist"];
prs = [[NSMutableArray alloc] initWithContentsOfFile:_prsPath];
if (prs == nil) {
prs = [NSMutableArray array];
}
和“addObject”之后:
[prs writeToFile:_prsPath atomically:YES];
用这段代码捣乱几个小时。
提前致谢!
答案 0 :(得分:4)
不应该是NSString *documentsDirectory = [paths objectAtIndex:0];
?
您获得的错误是一个越界错误。这意味着你要求一个数组中的索引高于它的最高索引。在这种情况下,即使最高索引为0(数组中只有一个对象),您也要求索引1(第二个对象)处的对象。