可以包括存儲文件(sqlite的分貝的大部分時間)在您的應用程序。 然後在你的應用程序代理編輯persistentStoreCoordinator吸氣merhod:
- (NSPersistentStoreCoordinator *)persistentStoreCoordinator {
if (persistentStoreCoordinator_ != nil) {
return persistentStoreCoordinator_;
}
NSString *storePath = [[self applicationDocumentsDirectory] stringByAppendingPathComponent: @"CoreDataStore.sqlite"];
// Check if the store exists in.
if (![[NSFileManager defaultManager] fileExistsAtPath:storePath]) {
// copy the payload to the store location.
NSString *bundleStore = [[NSBundle mainBundle] pathForResource:@"YourPayload" ofType:@"sqlite"];
NSError *error = nil;
[[NSFileManager defaultManager] copyItemAtPath:bundleStore toPath:storePath error:&error];
if (error){
NSLog(@"Error copying payload: %@", error);
}
}
NSError *error = nil;
NSURL *storeURL = [NSURL fileURLWithPath:storePath];
persistentStoreCoordinator_ = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
if (![persistentStoreCoordinator_ addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:nil error:&error]) {
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
return persistentStoreCoordinator_;
}
謝謝你的這段代碼。你不覺得設備/核心數據/複製數據庫之間可能存在兼容性問題嗎? – iwalktheline 2011-04-12 13:47:41
不,我主要是使用模擬器創建數據庫,然後在設備上使用它,這是沒有問題的。 – rckoenes 2011-04-12 14:01:23
在你的回答的第二句中,** persantstore **是什麼? (打字錯誤?) – David 2013-08-02 19:20:03