0

既存のデータベースをコア データにプリロードするチュートリアルに従っています。この行に到達するまで、コードは正常にコンパイルされます。

NSEntityDescription *entity = [NSEntityDescription    insertNewObjectForEntityForName:@"FailedBankInfo" inManagedObjectContext:context];

2012-11-19 12:45:02.247 CoreDatTutorial2[2049:403] -[FailedBankInfo subentitiesByName]: unrecognized selector sent to instance 0x100301010' というエラーが返されます。

が空ではなく、製品ディレクトリに保存されていることを確認しました。私が間違っていることは何か分かりますか?そのコード行をコメントアウトすると、プロジェクトは問題なくコンパイルされます。

残りのコードは次のとおりです。

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
    NSEntityDescription *entity = [NSEntityDescription insertNewObjectForEntityForName:@"FailedBankInfo" inManagedObjectContext:context];
    [fetchRequest setEntity:entity];
    NSArray *fetchedObjects = [context executeFetchRequest:fetchRequest error:&error];
    for (FailedBankInfo *info in fetchedObjects){
    {
4

1 に答える 1

2
insertNewObjectForEntityForName:inManagedObjectContext:

新しい管理対象オブジェクトを作成し、それを管理対象オブジェクト コンテキストに挿入します。特に、クラスのオブジェクトFailedBankInfo(あなたの場合)を返しますが、NSEntityDescription.

を作成するNSEntityDescriptionには、次を使用しますentityForName:inManagedObjectContext:

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"FailedBankInfo"
                                inManagedObjectContext:context];
[fetchRequest setEntity:entity];

(iOS 5.0以降)これを次のように単純化できることに注意してください

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"FailedBankInfo"];
于 2012-11-19T20:39:53.860 に答える