2

アプリケーションでコア データを使用しています。曲の情報を保存する新しいオブジェクトを挿入する方法を知っています。以下は私のテーブル構造です

song_id

song_title

song_description

Songs *aSong = (Poem *)[NSEntityDescription insertNewObjectForEntityForName:@"Songs" inManagedObjectContext:myManagedObjectContext];  

ここで、テーブル内にオブジェクトを再度挿入する前に、song_id が既に使用可能かどうかを確認する方法を知りたいです。

つまり、新しいオブジェクトを挿入する前に、その存在を確認するにはどうすればよいですか。

また、テーブルが空であることを確認する方法は?

Plsは私に知らせて、ありがとう

4

2 に答える 2

5
NSError * error;
NSFetchRequest * checkExistance = [[NSFetchRequest alloc] init];
[checkExistance setEntity:[NSEntityDescription entityForName:NSStringFromClass([yourClass class]) inManagedObjectContext:yourManagedContext]];
[checkExistance setFetchLimit:1];
[checkExistance setPredicate:[NSPredicate predicateWithFormat:@"ID == %@", yourID]];
Songs *yourSong = [[managedObjectContext executeFetchRequest:checkExistance error:&error] lastObject];

yourSong が存在する場合、つまり ID が存在するよりも null でない場合は、ここに表示されます。

お役に立てれば。

于 2012-07-02T05:41:45.497 に答える
1

NSEntityDescriptionメソッドのentityForName:inManagedObjectContext:を使用して、マネージド オブジェクト モデルからエンティティを取得できます。

これで、executeFetchRequestメソッドは、レコードが終了したかどうかを知ることができる配列を提供します。要件に応じて、新しいレコードを挿入できます

管理対象オブジェクトの取得リンクを参照してください。

于 2012-07-02T05:36:29.127 に答える