2012-01-10 60 views
3

我在覈心數據中包含許多名稱的實體。有些名字中有特殊字符,即Åfjord。以字母開頭的名字需要位於我的桌面視圖的底部,因爲它是挪威字母表中的最後一個字母。按核心數據按字母順序排序以及特殊字符

-(NSArray *)getFetchedObjects:(NSManagedObjectContext *)context entityName:(NSString *)entityName sortKey:(NSString *)key{ 
NSError *error = nil; 
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc]init]; 
NSEntityDescription *entity = [NSEntityDescription entityForName:entityName inManagedObjectContext:context]; 
[fetchRequest setEntity:entity]; 

if (key != nil) { 
    NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc]initWithKey:key ascending:YES]; 
    NSArray *sortDescs = [[NSArray alloc]initWithObjects:sortDescriptor, nil]; 
    [fetchRequest setSortDescriptors:sortDescs]; 
} 

return [context executeFetchRequest:fetchRequest error:&error]; 

}

我打電話像方法,以便:

places = [jsonMethods fetchObjectsForEntityName:@"Places" withPredicate:nil context:self.context sortKey:@"name"]; 

的輸出是:

AAAA 
AAAA 
ÅÅÅÅ 
BBBB 
BBBB 
... and so on 

我試圖選擇到NSSortDescriptor等:

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc]initWithKey:key ascending:YES selector:@selector(localizedCaseInsensitiveCompare:)]; 

但是,這只是把名稱以Å開頭

就像我說的,我需要在底部有Å開頭的名稱。

我該如何做到這一點?

謝謝!

回答

0

我認爲在這種情況下NSPredicate應該更合適。

+0

這就是我的想法。你能幫我看看代碼應該怎麼樣嗎?我搜索了一下,還沒有發現任何東西。 – Magnus 2012-01-10 08:49:56