2012-01-10 9 views
3

ロット名を含むコアデータにエンティティがあります。名前の中には特殊文字、たとえばÅフィヨルドがあります。 Åの文字で始まる名前は、ノルウェーのアルファベットの最後の文字なので、私のテーブルビューの最下部にある必要があります。コアデータを特殊文字でアルファベット順にソート

-(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 

Iは次のようNSSortDescriptorに選択しようとしました

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

しかし、ちょうど最初にÅで始まる名前を入れてください。

私が言ったように、私は下からÅで始まる名前を持つ必要があります。

どうすればこの問題を解決できますか?

ありがとうございます!

答えて

0

このシナリオでは、NSPredicateがより適切であると思います。

+0

これも私が考えたものです。コードの仕方を教えてください。私は周りを探索し、まだ何も見つけていない。 – Magnus

関連する問題