請告訴我:如果我在我的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]
我的應用程序不需要初始數據,因爲它會在用戶啓動應用程序時下載它。
完美。謝謝。如果我已經提供該文件,該怎麼辦? Afaik我無法將它直接發送到文檔目錄中。所以我會在嘗試創建它之前先複製它,對吧? – dontWatchMyProfile 2010-02-09 22:21:17
正確。你的應用包中會有一個發佈版本並將其複製。 – gerry3 2010-02-09 22:22:28
如果我在開發者網站上做了iOS教程,並且我的應用程序崩潰,說沒有可用的持久存儲。我怎麼能解決這個問題? – iProRage 2012-02-07 02:31:46