ObjC将文本文件行添加到PickerView

时间:2014-09-22 04:08:35

标签: ios objective-c arrays

我这里有这个代码,我在运行时遇到了一个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对象

1 个答案:

答案 0 :(得分:1)

  

我做错了什么?

出于多种可能原因,contentnil。尝试创建数组_imageURLs失败,因为数组中的第一个值是nil,而NSArrays不能包含nil元素。

你应该做的第一件事就是设置一个断点并自己确认content确实是零。

你应该做的第二件事是添加一个检查,以确保在content为零时不会尝试创建数组:

if (content) {
    _imageURLs = @[content, @"Image Two"];
}

你应该做的第三件事是弄清楚为什么没有创建你期望的字符串。可能是你提供的路径是错误的。您确定包中有一个名为Documents的目录吗?你确定你要找的文件存在吗?它是否包含可以读入字符串的数据?在error电话中使用-stringWithContentsOfFile:...参数会有所帮助 - 这就是它的用途。