-2

次の4つのオブジェクトを含む NSArray があることに少し疑問があります。

Genesis, 1 Kings, leviticus, 2 Kings

この配列を辞書順にソートしたいのですが、このような期待される出力が必要です

1 Kings, 2 Kings, Genesis, leviticus

これはどのように達成できますか?

4

2 に答える 2

6

次のリンクに移動します。

http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Collections/Articles/Arrays.html#//apple_ref/doc/uid/20000132-SW5

これはアップルのドキュメントであり、問​​題はそこで解決されます。

例を確認してください。

//First create the array of dictionaries
NSString *last = @"lastName";
NSString *first = @"firstName";

NSMutableArray *array = [NSMutableArray array];
NSArray *sortedArray;

NSDictionary *dict;
dict = [NSDictionary dictionaryWithObjectsAndKeys:
                 @"Jo", first, @"Smith", last, nil];
[array addObject:dict];

dict = [NSDictionary dictionaryWithObjectsAndKeys:
                 @"Joe", first, @"Smith", last, nil];
[array addObject:dict];

dict = [NSDictionary dictionaryWithObjectsAndKeys:
                 @"Joe", first, @"Smythe", last, nil];
[array addObject:dict];

dict = [NSDictionary dictionaryWithObjectsAndKeys:
                 @"Joanne", first, @"Smith", last, nil];
[array addObject:dict];

dict = [NSDictionary dictionaryWithObjectsAndKeys:
                 @"Robert", first, @"Jones", last, nil];
[array addObject:dict];

//Next we sort the contents of the array by last name then first name

// The results are likely to be shown to a user
// Note the use of the localizedCaseInsensitiveCompare: selector
NSSortDescriptor *lastDescriptor =[[NSSortDescriptor alloc] initWithKey:last
                           ascending:YES
                           selector:@selector(localizedCaseInsensitiveCompare:)];
NSSortDescriptor *firstDescriptor =
[[NSSortDescriptor alloc] initWithKey:first
                           ascending:YES
                           selector:@selector(localizedCaseInsensitiveCompare:)];

NSArray *descriptors = [NSArray arrayWithObjects:lastDescriptor, firstDescriptor, nil];
sortedArray = [array sortedArrayUsingDescriptors:descriptors];

このコードは、Apple ドキュメントの例です。

お役に立てば幸いです。

ありがとう、

ヘマン。

于 2012-07-21T09:30:48.237 に答える
5

次のように、配列をNSStringアルファベット順に並べ替えることができます。

NSArray *sortedArray = [myArray sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];
于 2012-07-21T09:39:12.420 に答える