次の4つのオブジェクトを含む NSArray があることに少し疑問があります。
Genesis, 1 Kings, leviticus, 2 Kings
この配列を辞書順にソートしたいのですが、このような期待される出力が必要です
1 Kings, 2 Kings, Genesis, leviticus
これはどのように達成できますか?
次の4つのオブジェクトを含む NSArray があることに少し疑問があります。
Genesis, 1 Kings, leviticus, 2 Kings
この配列を辞書順にソートしたいのですが、このような期待される出力が必要です
1 Kings, 2 Kings, Genesis, leviticus
これはどのように達成できますか?
次のリンクに移動します。
これはアップルのドキュメントであり、問題はそこで解決されます。
例を確認してください。
//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 ドキュメントの例です。
お役に立てば幸いです。
ありがとう、
ヘマン。
次のように、配列をNSString
アルファベット順に並べ替えることができます。
NSArray *sortedArray = [myArray sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];