當使用核心數據模型創建了SQLite數據庫,在這一行:Xcode的SQLite數據庫創建無Z_METADATA
if (![persistentStoreCoordinator_ addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:options error:&error])
我得到一個錯誤:
NSUnderlyingException=I/O SQLite error code:1, 'no such table: Z_METADATA'
任何想法如何解決這一問題?我一直在努力幾天。數據庫被創建並複製到我的設備上的文檔目錄中。
注:
如果我刪除該應用程序,重建,並安裝設備上 - 前兩天.sqlite文件過時,.mom文件昨天過時。數據庫是否在編譯時根據需要重新創建?我的項目中沒有.sqlite文件,只有.xcdatamodel。
謝謝你的時間。
- (NSPersistentStoreCoordinator *)persistentStoreCoordinator {
if (persistentStoreCoordinator_ != nil) {
return persistentStoreCoordinator_;
}
NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [documentPaths objectAtIndex:0];
//\MOVES DATABASE TO NEW LOCATION
NSString *storePath = [documentsDirectory stringByAppendingPathComponent:@"myShoeDatabase.sqlite"];
NSFileManager *fileManager = [NSFileManager defaultManager];
// If the expected store doesn’t exist, copy the default store.
if (![fileManager fileExistsAtPath:storePath]) {
NSString *defaultStorePath = [[NSBundle mainBundle] pathForResource:@"myShoeDatabase" ofType:@"sqlite"];
if (defaultStorePath) {
[fileManager copyItemAtPath:defaultStorePath toPath:storePath error:NULL];
}
}
NSURL *storeURL = [NSURL fileURLWithPath:storePath];
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption, [NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption, nil];
NSError *error = nil;
persistentStoreCoordinator_ = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
if (![persistentStoreCoordinator_ addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:options error:&error]) {
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
return persistentStoreCoordinator_;
}
enter code here
你可以顯示你的代碼來創建PSC('initWithManagedObjectModel:') – falconcreek 2010-08-20 20:02:24
SQLite持久存儲數據庫是如何創建的?您不能只使用任何舊的SQLite數據庫,它需要採用Core Data生成的確切格式。 – 2010-08-20 21:23:45
我加了我的代碼。我正在使用由核心數據創建的數據庫。感謝您的關注和幫助Brad,falcon和MPelletier。 – Bryan 2010-08-20 21:50:30