0
我有一個名爲「歌曲」的核心數據實體,其中包含不同歌曲細節的詳細信息。這個實體的一個屬性是「語言」。我想用語言西班牙語獲取所有歌曲。但是如果有西班牙語的歌曲數量爲零,那麼它應該使用默認語言獲取所有歌曲,即英文。如果我知道默認語言和所需的語言,是否可以通過單個NSPredicate實現?使用nspredicate從實體獲取數據
我有一個名爲「歌曲」的核心數據實體,其中包含不同歌曲細節的詳細信息。這個實體的一個屬性是「語言」。我想用語言西班牙語獲取所有歌曲。但是如果有西班牙語的歌曲數量爲零,那麼它應該使用默認語言獲取所有歌曲,即英文。如果我知道默認語言和所需的語言,是否可以通過單個NSPredicate實現?使用nspredicate從實體獲取數據
你可以這樣做。
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".
}
您也可以參考這個link