0

次のコアデータ構造があります。 コアデータ

Group クラスに Vocabulary オブジェクトを追加しようとしています。

[Group addObject: VocabularyObject] メソッドを使用してこれを試みましたが、うまくいきませんでした。

 AppDelegate *delegate = [[AppDelegate alloc]init];

 Group *group = [_arr objectAtIndex:indexPath.row]; //I have an array with 'Group' objects

    //create vocabulary item
    Vocabulary *vocabularyEntity = [NSEntityDescription insertNewObjectForEntityForName:@"Vocabulary" inManagedObjectContext:[delegate managedObjectContext]];
    vocabularyEntity.prompt = @"Here is a cool prompt";
    vocabularyEntity.definition = @"Here is an even cooler definition";

    [delegate saveContext];

    [group addTermsObject:vocabularyEntity];

このエラーが発生しています。例外ブレークポイントを使用しましたが、エラーは addTermsObject 呼び出しから発生しています。

[__NSDictionaryI addTermsObject:]: unrecognized selector sent to instance 0x74c4f70

追加しようとしているオブジェクトは間違いなく語彙オブジェクトであるため、何が問題なのか正確にはわかりません。

何か案は?

ありがとうございました!

4

1 に答える 1

1

エラー メッセージには、

Group *group = [_arr objectAtIndex:indexPath.row];

期待どおりの管理対象オブジェクトではありませんが、NSDictionary. おそらく、次を使用して配列を取得しました

[fetchRequest setResultType:NSDictionaryResultType];

フェッチリクエストで?その場合、フェッチされたすべてのオブジェクトは、管理対象オブジェクトのコンテキストに接続されていない単なる辞書であり、これらの辞書を使用して関係を確立することはできません。

更新:別のエラーがここにあります:

AppDelegate *delegate = [[AppDelegate alloc]init];

これにより、既存のアプリケーション デリゲートを使用する代わりに、新しいアプリケーション デリゲートが割り当てられます。これはおそらくあなたが望むものではないので、それを置き換える必要があります

AppDelegate *delegate = [[UIApplication sharedApplication] delegate];
于 2013-06-18T18:11:56.243 に答える