2

我在我的应用程序中使用核心数据。我知道如何在其中插入一个新对象。它将歌曲信息存储在其中。下面是我的表结构

song_id

song_title

song_description

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

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

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

还有如何检查表是空的?

请告诉我,谢谢

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 存在,即不为空,则它存在。

希望这可以帮助。

于 2012-07-02T05:41:45.497 回答
1

您可以使用NSEntityDescription方法entityForName:inManagedObjectContext:从托管对象模型中获取实体。

现在executeFetchRequest方法将提供数组,我们可以从中知道记录是否退出。根据您的要求,您可以插入新记录

请参阅获取托管对象链接。

于 2012-07-02T05:36:29.127 回答