我这里有这段代码,它在运行时出现 SIGBRT 错误。我试图获取文本文件中的每一行并将每一行添加到 PickerView 中,我做错了什么?
NSString* path = [[NSBundle mainBundle] pathForResource:@"Documents/Recent Images"
ofType:@"txt"];
NSString* content = [NSString stringWithContentsOfFile:path
encoding:NSUTF8StringEncoding
error:NULL];
_imageURLs = @[content, @"Image Two"];
我在
上收到错误_imageURLs = @[content, @"Image Two"];
实际错误:
2014-09-21 21:04:44.369 app[22995:60b] * 由于未捕获的异常 'NSInvalidArgumentException' 而终止应用程序,原因:'* -[__NSPlaceholderArray initWithObjects:count:]:尝试从 objects[0]' 中插入 nil 对象
最佳答案
what am I doing wrong?
由于多种可能的原因,content
为nil
。尝试创建数组 _imageURLs
失败,因为数组中的第一个值为 nil
,而 NSArrays 不能包含 nil 元素。
您应该做的第一件事是设置一个断点并亲自确认 content
确实为 nil。
您应该做的第二件事是添加一个检查,以确保如果 content
为 nil,您不会尝试创建数组:
if (content) {
_imageURLs = @[content, @"Image Two"];
}
您应该做的第三件事是找出为什么您期望的字符串没有被创建。可能是您提供的路径错误。您确定您的包中有一个名为 Documents
的目录吗?您确定您要查找的文件存在吗?它包含可以读入字符串的数据吗?在 -stringWithContentsOfFile:...
调用中使用 error
参数将会有所帮助——这就是它的用途。
关于ios - ObjC 将文本文件行添加到 PickerView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25966563/