2015-06-04 105 views
0

我有一個名爲「歌曲」的核心數據實體,其中包含不同歌曲細節的詳細信息。這個實體的一個屬性是「語言」。我想用語言西班牙語獲取所有歌曲。但是如果有西班牙語的歌曲數量爲零,那麼它應該使用默認語言獲取所有歌曲,即英文。如果我知道默認語言和所需的語言,是否可以通過單個NSPredicate實現?使用nspredicate從實體獲取數據

回答

0

你可以這樣做。

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

相關問題