私は少し面倒です。コンテキストの新しいバージョンを作成し、それをデフォルトのものにしました。その後、アップルのドキュメントに従ってコードを変更しました。今は次のようになります。
- (NSPersistentStoreCoordinator *)persistentStoreCoordinator
{
if (persistentStoreCoordinator != nil)
{
return persistentStoreCoordinator;
}
NSError *error = nil;
persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"database.sqlite"];
NSPersistentStoreCoordinator *psc = persistentStoreCoordinator;
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption,
[NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption, nil];
BOOL success = [psc addPersistentStoreWithType:NSSQLiteStoreType
configuration:nil URL:storeURL
options:options error:&error];
if (!success) {
NSLog(@"Unresolved Error");
abort();
}
return persistentStoreCoordinator;
}
しかし、1:1 の同じコードであってもエラーが発生しますBOOL sucess
。incompatible pointer to integer conversion 'BOOL' with 'NSPersistentstore'
どういうわけかマッピングは機能しましたが、新しいモデルを取得すると、5回のうち4回は機能し、5回目はその行にエラーがスローされます。
それを修正する方法はありますか?
更新コードを少し変更しましたが、今はそのように見えます
NSPersistentStore *store = [psc addPersistentStoreWithType:NSSQLiteStoreType
configuration:nil URL:storeURL
options:options error:&error];
if (!store) {
NSLog(@"Unresolved Error");
abort();
}