Iphone 核心数据会为我创建持久存储文件吗?

Iphone 核心数据会为我创建持久存储文件吗?,iphone,core-data,Iphone,Core Data,请告诉我:如果我在iPhone应用程序中使用核心数据,我基本上有两个文件。mydatamodel.xcdatamodel文件,然后我需要一个.sqlite文件。Apple提供了以下代码片段: - (NSPersistentStoreCoordinator *)persistentStoreCoordinator { if (persistentStoreCoordinator != nil) { return persistentStoreCoordinator;

请告诉我:如果我在iPhone应用程序中使用核心数据,我基本上有两个文件。mydatamodel.xcdatamodel文件,然后我需要一个.sqlite文件。Apple提供了以下代码片段:

- (NSPersistentStoreCoordinator *)persistentStoreCoordinator {
    if (persistentStoreCoordinator != nil) {
        return persistentStoreCoordinator;
    }

    NSString *appDirPath = [self applicationDocumentsDirectory];
    NSString *storeFileName = @"mystore.sqlite";
    NSURL *storeUrl = [NSURL fileURLWithPath:[appDirPath stringByAppendingPathComponent:storeFileName]];

    NSError *error = nil;
    persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];

    if (![persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeUrl options:nil error:&error]) {
        NSLog(@"Error: %@, %@", error, [error userInfo]);
        abort();
    }

    return persistentStoreCoordinator;
}
如果文件不可用,是否会创建该文件

[persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeUrl options:nil error:&error]

我的应用不需要初始数据,因为它将在用户启动应用时下载。

是的,核心数据将在应用程序委托中首次启动应用程序后创建SQLite db。

是的。如果数据库文件不存在,Apple模板提供的boiler plate Core数据堆栈代码将创建该数据库文件。

是的,该方法在给定位置添加指定类型的新持久存储,并返回新存储

太好了。非常感谢。如果我已经提供了那个文件呢?抱歉,我不能直接寄到文件目录。所以我会先复制它然后再尝试创建它,对吗?正确。如果我在开发者网站上做了iOS教程,我的应用程序崩溃了,说没有可用的持久存储,那么你的应用程序包中会有一个发布版本并复制过来。如果我在开发者网站上做了iOS教程,我的应用程序崩溃了,说没有可用的持久存储,我该怎么解决这个问题呢。如果我在开发者网站上做了iOS教程,我的应用程序崩溃了,说没有可用的持久存储,我该怎么解决这个问题呢。我怎样才能解决这个问题?