Ios 使用nspredicate从实体获取数据
我有一个名为“Songs”的核心数据实体,其中包含不同歌曲的详细信息。该实体的属性之一是“语言”。我想把所有西班牙语歌曲都拿来。但如果西班牙语歌曲的数量为零,那么它应该获取所有默认语言为英语的歌曲。如果我知道默认语言和所需语言,是否可以通过单个NSPredicate实现这一点。您可以这样做Ios 使用nspredicate从实体获取数据,ios,xcode,core-data,nspredicate,Ios,Xcode,Core Data,Nspredicate,我有一个名为“Songs”的核心数据实体,其中包含不同歌曲的详细信息。该实体的属性之一是“语言”。我想把所有西班牙语歌曲都拿来。但如果西班牙语歌曲的数量为零,那么它应该获取所有默认语言为英语的歌曲。如果我知道默认语言和所需语言,是否可以通过单个NSPredicate实现这一点。您可以这样做 NSEntityDescription *entity = [NSEntityDescription entityForName:@"Songs" inManagedObjectContext:managed
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Songs" inManagedObjectContext:managedObjectContext];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
//here strLanguage is string with the name of selected language
NSPredicate * predicate = [NSPredicate predicateWithFormat:@"Language == %@",strLanguage];
[request setPredicate:predicate];
[request setEntity:entity];
NSMutableArray* mutableFetchCategory = [[managedObjectContext executeFetchRequest:request error:&error] mutableCopy];
if ([mutableFetchCategory count] > 0)
{
for (NSManagedObject *info in mutableFetchCategory)
{
NSLog(@"%@",info);
//Extract data from each "info" object and store it in an array and display it in tableview
}
}
else
{
// Repeat the same code [or u can use functions for reusability] with language "English".
}
你也可以参考这个