如何在Mac应用程序中设置初始Core Data存储?

时间:2011-06-25 03:22:23

标签: cocoa macos core-data nsfilemanager

我是一位经验丰富的iOS开发人员,正在努力制作我的第一款Mac应用。我想使用Core数据将数据存储在我的应用程序中。在我的iOS应用程序中,我通常有一个预先创建的SQLite文件,该文件用作数据存储的初始状态,并在第一次运行应用程序时移动到位,如下所示:

NSString *storePath = [[self applicationDocumentsDirectory] stringByAppendingPathComponent: @"Datafile.sqlite"];
NSFileManager *fileManager = [NSFileManager defaultManager];
if (![fileManager fileExistsAtPath:storePath]) {
    NSString *defaultStorePath = [[NSBundle mainBundle]  pathForResource:@"Datafile-DefaultData" ofType:@"sqlite"];
    if (defaultStorePath) {
        [fileManager copyItemAtPath:defaultStorePath toPath:storePath error:NULL];
    }
}

除了将数据放在~/Library/Application Support/MyApp目录中之外,我想在mac app中做类似的事情。我似乎无法弄明白该怎么做。有什么指针吗?

1 个答案:

答案 0 :(得分:0)

在Xcode 4中,默认的Core Data项目模板由于某种原因使用根~/Library目录(即~/Library/Application来存储您的Core Data文件。您应该更改此信息(因为它是一个坏主意),但一旦你这样做,它应该按照你的预期工作。我相信Mac上的默认名称是storedata,你还应该注意到你需要从XML更改商店类型,这是默认值。