我正在開發一個使用核心數據的應用程序。在iOS 5中,我沒有任何問題。但是,在iOS 4中,當我嘗試保存任何信息時,我收到一條錯誤消息(更確切地說:Cocoa錯誤134030和「沒有這樣的文件或目錄」)。當我查看文檔文件夾時,SQL文件不在那裏。我已經對此進行了調試,並且這些方法中沒有一個會導致錯誤或nil
指針。爲什麼Core Data在iOS 4上沒有正確設置?
最奇怪的部分:addPersistentStoreWithType方法不會返回任何錯誤,但同時不會創建sqlite文件。
在一行中,我的應用程序沒有在文檔文件夾中創建sql文件。再次,這隻發生在iOS 4中。
爲什麼我的應用程序不在iOS 4上創建sqlite文件?
//Core Data stack
- (NSManagedObjectContext *)managedObjectContext
{
NSPersistentStoreCoordinator *coordinator = [self persistentStoreCoordinator];
if (coordinator != nil)
{
__managedObjectContext = [[NSManagedObjectContext alloc] init];
[__managedObjectContext setPersistentStoreCoordinator:coordinator];
}
return __managedObjectContext;
}
- (NSManagedObjectModel *)managedObjectModel
{
NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"Practi" withExtension:@"momd"];
__managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];
if (__managedObjectModel == nil)
{
NSLog(@"NSManagedObjectModel in AppDelegate == nil");
}
return __managedObjectModel;
}
- (NSPersistentStoreCoordinator *)persistentStoreCoordinator
{
NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"MyAppDataBase.sqlite"];
NSError *error = nil;
__persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
if (![__persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:nil error:&error])
{
NSLog(@"APPDELEGATE Unresolved error %@, %@", error, [error userInfo]);
}
return __persistentStoreCoordinator;
}
- (NSURL *)applicationDocumentsDirectory
{
NSString *docsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
return [NSURL fileURLWithPath:docsDirectory];
}
請包括您定義持久性存儲的代碼。 – jrturton 2012-04-29 11:23:38
添加代碼,謝謝。順便說一句,我已經調試過了,在這些方法中有錯誤。 – 2012-04-29 11:31:38