タイトルは正確な問題を説明しています。基本的なCoreDataマスター詳細テンプレートは、iOS 10以上でのみ動作します。しかし、iOS 9またはそれ以降で同じテンプレートを実行しようとすると、を取得していたpersistentContainer
が作成されていないため、クラッシュする可能性があります。これは、最新のiOS 10にxCode 8が追加されたためです。Swiftの回避策はほとんどありませんが、Objective-Cの回避策はほとんどありませんでした。 Objcのためのより良い解決策?Xcode 8自動生成コアデータスタックはiOS 9以降ではサポートされていません
1
A
答えて
1
からスタックコピーして、上記のデリゲートクラスの任意の場所にこの方法を置く
が、これは我々がやっているものです、あなたはこのように自分でコアデータスタックを初期化する必要があり、基本的persistentContainer
インフラを持っていないiOSの10
persistentContainer
introductする前にイオン。今すぐ下記入れ
- (void)initializeCoreData
{
NSDictionary *options = @{ NSSQLitePragmasOption : @{@"journal_mode" : @"DELETE"}};
NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"yourmodelname" withExtension:@"momd"];
NSManagedObjectModel *mom = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];
NSAssert(mom != nil, @"Error initializing Managed Object Model");
NSPersistentStoreCoordinator *psc = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:mom];
NSManagedObjectContext *moc = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSMainQueueConcurrencyType];
[moc setPersistentStoreCoordinator:psc];
_managedObjectContext = moc;
[EFLDatabase sharedDatabaseWithManagedObjectContext:_managedObjectContext];
NSFileManager *fileManager = [NSFileManager defaultManager];
NSURL *documentsURL = [[fileManager URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];
NSLog(@"DOC %@", [documentsURL absoluteString]);
NSURL *storeURL = [documentsURL URLByAppendingPathComponent:@"yourmodelname.sqlite"];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^(void) {
NSError *error = nil;
NSPersistentStoreCoordinator *psc = [[self managedObjectContext] persistentStoreCoordinator];
NSPersistentStore *store = [psc addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:options error:&error];
NSAssert(store != nil, @"Error initializing PSC: %@\n%@", [error localizedDescription], [error userInfo]);
});
}
が10以下の場合は、基本的にはiOSのバージョンを確認しますdidFinishLaunchingWithOptions
方法にスニペット、その後、返信用
if ([[NSProcessInfo processInfo] operatingSystemVersion].majorVersion < 10) {
[self initializeCoreData];
}
0
ダウンロードXcodeの7は、iOSの9であるので、
をテンプレートからプロジェクトを作成し、 使用のコアデータをチェックして、解決策があるコアデータは、ここでアプリの委任関連する問題
- 1. GLOSTextureはiOS6以降正しくマップされていません
- 2. CSSメニューがIE 8以降で動作していません
- 3. Xcode 8で自動生成されたSwift-Headerが壊れています
- 4. iOS 9以降のURLCache.shared動作
- 5. performSegueがXcode 9(およびiOS 11)のアップデート以降に動作しない
- 6. Xcode 8サポートしていないiOS 7
- 7. 私のappDelegate coredataはiOS 9をサポートしています。私はxCodeを使用しています。8
- 8. Xcode 8はinitメソッドで自動完了しません
- 9. Xcode 8はiOS 10を含んでいません
- 10. xcode 8.1以降でシミュレータが表示されないxcode 8.1
- 11. HTML5 Android 3.0以降は搭載されていませんか?
- 12. jquery preloader addonがIE 8以降で動作していません...
- 13. アプリはv5.0(ロリポップ)以下ではサポートされていません
- 14. モジュールコード生成 'system'はサポートされていません
- 15. サポートされていません(表形式モデル1200以降が必要)
- 16. Xcodeのmp4ビデオはiPhone IOS 4.2.1で再生されません
- 17. コアSwift 2.3ではデータコード生成がサポートされていません
- 18. ARSessionConfigurationがXcode 9で解決されていませんGM
- 19. Quicklook/QLPreviewControllerデリゲートメソッドがiOS 10で呼び出されていませんXcode 8
- 20. SamarkanフォントはiOSでサポートされていません
- 21. iOS 11以降のアプリ名は変更できません
- 22. 自動回転が動作しないiOS 9&xcode 7
- 23. xcode 8にはios 10のシミュレータが含まれていません
- 24. Xcode 8 Codegen機能は何も生成しません
- 25. Xcode 8テンプレートはファイルを生成しません
- 26. NinjectはFunc(自動生成された工場)をサポートしていますか?
- 27. Play framework - dependencies.ymlは自動的に生成されません
- 28. Android Rファイルは自動生成されません
- 29. cell2matはMATLAB CoderのCコード生成ではサポートされていません
- 30. 10.3以降、HTML画像マップはiOS上で動作しません
感謝を上記の方法を実行します。私はすでにそれを試したが、残念ながらそれは私のために働いていない。 –
"それは私のために働いていない"と言うとき、正確に何が問題なのですか? –
まあ、コンテキストの作成を進めるには、自動的に 'managedObjectContext'メソッドを呼び出さなかったのです。 –