索引 0 超出空数组的边界,同时进入文档目录



我使用以下代码访问文档目录。

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];

为什么我的应用会崩溃并显示以下消息?

*** -[__NSArrayI objectAtIndex:]: index 0 beyond bounds for empty array

我看不出我的NSArray(不可变数组)怎么会是空的。该函数应该返回数组中的文档文件夹。有什么想法吗?

1)你确定崩溃在那里吗?

2)不完全相关,但可以提供帮助。

NSSearchPathForDirectoriesInDomains返回的数组中没有元素。它是空的。正是错误消息所说的。

没有回答为什么,但从 Xcode 5 开始:

NSString *documentsDirectory = [paths firstObject];

如果它为空,它不会引发异常,它将返回 nil。没有崩溃。

尝试改用NSHomeDirectory()...这是获取应用程序主目录的更好方法。

注意:如果您在文档目录之后,则可能需要将@"Documents/"附加到字符串中

最新更新