温馨提示:本文翻译自stackoverflow.com,查看原文请点击:ios - What is the documents directory (NSDocumentDirectory)?
ios nsdocumentdirectory

ios - 什么是文档目录(NSDocumentDirectory)?

发布于 2020-03-27 16:07:38

有人可以向我解释iOS应用程序上的文档目录是什么以及何时使用它吗?

这是我目前所相信的:

在我看来,这似乎是一个中央文件夹,用户可以在其中存储应用程序所需的任何文件。

这将是与Core Data存储数据的位置不同的位置?

似乎每个应用程序都有其自己的文档目录。

我可以自由地创建文档目录的子目录,例如文档目录/图像或文档目录/视频吗?

查看更多

查看更多

提问者
user798719
被浏览
21
1,582 2016-08-11 09:20

仅您的应用程序(在非越狱设备上)在“沙盒”环境中运行。这意味着它只能访问其自身内容内的文件和目录。例如文件图书馆

请参阅《iOS应用程序编程指南》

要访问应用程序沙箱Documents目录,可以使用以下命令:

iOS 8及更高版本,这是推荐方法

+ (NSURL *)applicationDocumentsDirectory
{
     return [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];
}

如果您需要支持iOS 7或更早版本

+ (NSString *) applicationDocumentsDirectory 
{    
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *basePath = paths.firstObject;
    return basePath;
}

通过此Documents目录,您可以存储应用程序创建或可能需要的文件和子目录。

要访问应用沙箱的“ 库”目录中的文件,请使用(代替paths上面的):

[NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) objectAtIndex:0]