我正在尝试从文本文件中打印数组的单个元素,这是我正在使用的代码:
//Tells the compiler where the text file is and its type
NSString* path = [[NSBundle mainBundle] pathForResource:@"shakes"
ofType:@"txt"];
//This string stores the actual content of the file
NSString* content = [NSString stringWithContentsOfFile:path
encoding:NSUTF8StringEncoding
error:NULL];
//This array holds each word separated by a space as an element
NSArray *array = [content componentsSeparatedByString:@" "];
//Fast enumeration for loop tha prints out the whole file word by word
// for (NSString* word in array) NSLog(@"%@",word);
//To access a certain element in an array
NSLog(@"%@", [array objectAtIndex:3
]);
问题是 - 如果我想访问前2个元素,0或1,那很好。但是,只要我想访问说,元素2或3我就会收到以下错误:
*** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayM objectAtIndex:]: index 3 beyond bounds [0 .. 1]
这是一个SIGABRT线程错误 - 在iOS编程中看起来很多东西,但它通常是可以解决的。
文本文件“Shakes.txt”长度为6个元素,仅用于测试目的。
PS - 第三行被注释掉了,我想稍后再使用它......所以不要担心。
提前感谢您的帮助!
答案 0 :(得分:0)
基本上,您正在尝试访问超出数组范围的对象。 日志非常明显,您的数组只有1个元素,并且您正在尝试访问第4个元素。
将此添加到您的代码中。
NSMutableArray *contentArray = [[NSMutableArray alloc] init];
for (NSString* word in array)
{
[contentArray addObject:word]
}
//Now try to access contentArray
NSLog(@"%@", [contentArray objectAtIndex:3
]);