我这里有这个代码,我在运行时遇到了一个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:]:尝试从对象[0]'
插入nil对象答案 0 :(得分:1)
我做错了什么?
出于多种可能原因,content
为nil
。尝试创建数组_imageURLs
失败,因为数组中的第一个值是nil
,而NSArrays不能包含nil元素。
你应该做的第一件事就是设置一个断点并自己确认content
确实是零。
你应该做的第二件事是添加一个检查,以确保在content
为零时不会尝试创建数组:
if (content) {
_imageURLs = @[content, @"Image Two"];
}
你应该做的第三件事是弄清楚为什么没有创建你期望的字符串。可能是你提供的路径是错误的。您确定包中有一个名为Documents
的目录吗?你确定你要找的文件存在吗?它是否包含可以读入字符串的数据?在error
电话中使用-stringWithContentsOfFile:...
参数会有所帮助 - 这就是它的用途。