我正在使用核心數據,我的應用在模擬器中完美工作,但在實際設備上數據庫爲空。從模擬器到設備的核心數據遷移
我啓用CoreData日誌記錄,所以我看到實際的表正在創建,查詢運行但所有的查詢都是空的。我還從設備中複製了該應用程序,並驗證了架構已創建,但沒有數據。
我錯過了什麼數據實際重新填充?
的代碼已更新
- (NSDictionary*)migrationOptions {
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption,
[NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption, nil];
return options;
}
- (NSManagedObjectContext*)managedObjectContext {
if(_managedObjectContext != nil) {
return _managedObjectContext;
}
NSPersistentStoreCoordinator *coordinator = [self persistentStoreCoordinator];
if (coordinator != nil) {
_managedObjectContext = [[NSManagedObjectContext alloc] init];
[_managedObjectContext setPersistentStoreCoordinator: coordinator];
[_managedObjectContext setUndoManager:nil];
[_managedObjectContext setRetainsRegisteredObjects:YES];
}
return _managedObjectContext;
}
- (NSManagedObjectModel*)managedObjectModel {
if(_managedObjectModel != nil) {
return _managedObjectModel;
}
NSString *path = [[NSBundle mainBundle] pathForResource:@"MyApp" ofType:@"momd"];
NSURL *momURL = [NSURL fileURLWithPath:path];
//_managedObjectModel = [[NSManagedObjectModel mergedModelFromBundles:nil] retain];
_managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:momURL];
return _managedObjectModel;
}
- (NSPersistentStoreCoordinator*)persistentStoreCoordinator {
if(_persistentStoreCoordinator != nil) {
return _persistentStoreCoordinator;
}
NSString* storePath = [self storePath];
NSURL *storeUrl = [self storeUrl];
NSError* error;
_persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel: [self managedObjectModel]];
NSDictionary* options = [self migrationOptions];
// Check whether the store already exists or not.
NSFileManager* fileManager = [NSFileManager defaultManager];
BOOL exists = [fileManager fileExistsAtPath:storePath];
TTDINFO(storePath);
if(!exists) {
_modelCreated = YES;
} else {
if(_resetModel ||
[[NSUserDefaults standardUserDefaults] boolForKey:@"erase_all_preference"]) {
[[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"erase_all_preference"];
[fileManager removeItemAtPath:storePath error:nil];
_modelCreated = YES;
}
}
if (![_persistentStoreCoordinator
addPersistentStoreWithType: kStoreType
configuration: nil
URL: storeUrl
options: options
error: &error
]) {
// We couldn't add the persistent store, so let's wipe it out and try again.
[fileManager removeItemAtPath:storePath error:nil];
_modelCreated = YES;
if (![_persistentStoreCoordinator
addPersistentStoreWithType: kStoreType
configuration: nil
URL: storeUrl
options: nil
error: &error
]) {
// Something is terribly wrong here.
}
}
return _persistentStoreCoordinator;
}
- (NSString*)storePath {
return [[self applicationDocumentsDirectory] stringByAppendingPathComponent: kStoreFilename];
}
- (NSURL*)storeUrl {
return [NSURL fileURLWithPath:[self storePath]];
}
如何'storePath'和'storeUrl'設置?他們的價值是什麼? – 2010-10-06 22:25:59