我使用以下代码访问文档目录。
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/"
附加到字符串中