我在应用程序中使用核心数据。
我知道如何在其中插入新对象,该对象中存储有歌曲信息。
下面是我的桌子结构

song_id

song_title

song_description

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

在这里,我想知道如何在将对象再次插入表中之前检查song_id是否已经可用。

我的意思是在插入新对象之前,我该如何检查它的存在。

还如何检查表是否为空?

请让我知道并谢谢

最佳答案

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。

希望这可以帮助。

10-08 15:42