【发布时间】:2016-10-22 21:57:19
【问题描述】:
使用 Core Data 时,MacOS 应用程序的数据库位置是什么?
我在 Mac 上到处搜索,但没有找到。
我关闭了隐藏文件,我确定我的数据库中有数据。
我也不使用应用沙盒。
【问题讨论】:
标签: macos cocoa core-data macos-sierra
使用 Core Data 时,MacOS 应用程序的数据库位置是什么?
我在 Mac 上到处搜索,但没有找到。
我关闭了隐藏文件,我确定我的数据库中有数据。
我也不使用应用沙盒。
【问题讨论】:
标签: macos cocoa core-data macos-sierra
如果您为您的应用启用了沙盒,它将被放置在~/Library/Containers/app.bundle.id/Data/Library/Application Support/AppTargetName 下,其中 app.bundle.id 是在您的应用目标中指定的捆绑标识符,AppTargetName 是该目标的名称,即生成的名称.app 文件。在该文件夹中,您应该可以找到包含数据库数据的 SQLite 文件。
【讨论】:
在您的AppDelegate.m 中查找persistentStoreCoordinator 方法。有一条线
NSURL *applicationDocumentsDirectory = [self applicationDocumentsDirectory];
只需添加
NSLog(@"myDirectory: %@", applicationDocumentsDirectory);
这假设您使用带有“使用核心数据”选项的 Xcode 8 Cocoa 模板开始您的项目。
或添加
NSLog(@"Array of CD stores: %@", self.persistentStoreCoordinator.persistentStores);
到applicationDidFinishLaunching,例如。生成的路径应该在您的用户库中Users/<user>/Library/Application Support/<whatever>/<appname>.storedata。
【讨论】:
询问您的 NSPersistentStoreCoordinator。
【讨论】: