私はCoreDataを覚えていて、私はrootとしてUITableViewを持ったテストアプリケーションを手に入れて、データをうまく表示しています。これは、データを引き出すデータベースが正しく設定されていることを示します。私のアプリケーションに私のCoreDataを表示しようとしています
今私は(ストーリーボードを経由して)初期ビューコントローラとしてのUIViewControllerを持つようにしようとしていますし、それは私に、このエラーを与え続けて -
をNSPersistentStoreCoordinatorを作成できませんはnilにモデルと
は、今私は、フォーラムやチュートリアルをたくさん読んでいると、彼らはすべて、基本的に私は私のxcdatamodelファイルはこの
URLForReと一致することを確認する必要があると言います出典:@ "Model" withExtension:@ "momd"]
さらに、私はUITableViewがルートビューであればデータを表示できます。
今、私は変更する場合:アプリの実行
- (NSManagedObjectModel *)managedObjectModel
{
if (__managedObjectModel != nil)
{
return __managedObjectModel;
}
//NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"Model" withExtension:@"momd"]; // I have commented out this line because the NSURL is no longer being used.
__managedObjectModel = [NSManagedObjectModel mergedModelFromBundles:nil];
return __managedObjectModel;
}
が、私はCoreDataファイルにリンクしていない午前としてテーブルビューは、私には理にかなっている、空である。この中
- (NSManagedObjectModel *)managedObjectModel
{
if (__managedObjectModel != nil)
{
return __managedObjectModel;
}
NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"Model" withExtension:@"momd"];
__managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];
return __managedObjectModel;
}
を。 - 問題は、私が持っている設定でアプリケーションを実行し、データを表示するにはどうすればいいですか?ジェフ・ウォルスキーによる最初の回答に
乾杯ジェフ
@response
おかげで答えを、私は正しい道の上だと思う - 私は削除するために、私のプロジェクトに少しそれを変更しなければなりませんでしたエラー。私は、だから私は、これは
- (NSManagedObjectModel *)managedObjectModel {
エリアで
AppDelegate appDelegate = (AppDelegate) [[UIApplication sharedApplication] delegate];
を入れている知っている - それが正しいのですか?また、現在、appDelegate変数は警告として使用されていません。単純な問題かもしれませんが、今どこでその変数を使用しますか?乾杯ジェフ
私は私はあなたが@Jody Hagins後何であるかと思われるもの投稿している - それはあなたがすべてを設定する必要があります:-)
- (NSPersistentStoreCoordinator *)persistentStoreCoordinator
{
if (__persistentStoreCoordinator != nil)
{
return __persistentStoreCoordinator;
}
NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"ViewToNav.sqlite"];
NSError *error = nil;
__persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption,
[NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption, nil];
if (![__persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:options error:&error])
{
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
return __persistentStoreCoordinator;
}
乾杯ジェフ
persistentStoreCoordinator()はどのように見えますか? –
こんにちはジョディ、私はあなたが尋ねていると思うもののコードを追加しました:-) –
ここにあなたのコードは、アプリケーションデリゲートにアクセスするには間違っています..あなたはポインタを使用していない...それはジェフのポストにあります。もう一度見に行ってください。また、あなたが混乱していると思うので、良い例のためにアップルが生成したコードを見てください。簡単な方法:Xcodeで、「新規プロジェクト」を選択し、「マスター詳細」を選択してCoreDataプロジェクトをチェックします。これを行う方法の良い例でプロジェクトを作成します。 –