私はコアデータを使用するアプリケーションを開発しています。 iOS 5では、何の問題もありません。Core DataがiOS 4で正しく設定されないのはなぜですか?
しかし、iOS 4では、情報を保存しようとするとエラーメッセージが表示されます(正確には、ココアエラー134030、「No such file or directory」)。ドキュメントフォルダを見ると、SQLファイルはありません。私はすでにこれをデバッグしており、これらのメソッドのどれもがエラーまたはnil
ポインタを生成しません。
最も奇妙な部分:メソッド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
コードを追加しました。ありがとうございます。ところで、私はすでにこれをデバッグしましたが、これらの方法のいずれかにエラーがあります。 –