NSMutable配列内のカスタムオブジェクトフィールドをアルファベット順にソートするにはどうすればよいですか?

私は次のようなカスタムオブジェクトを持っています:

#import 

@interface Store : NSObject{
    NSString *name;
    NSString *address;
}

@property (nonatomic, retain) NSString *name;
@property (nonatomic, retain) NSString *address;

@end

ストアオブジェクトを含むNSMutableArray(storeArray)の配列があります。

store1 = [[Store alloc] init];
store1.name = @"Walmart";    
store1.address = @"walmart address here..";

store2 = [[Store alloc] init];
store2.name = @"Target";
store2.address = @"Target address here..";

store3 = [[Store alloc] init];
store3.name = @"Apple Store";
store3.address = @"Apple store address here..";

//add stores to array
storeArray = [[NSMutableArray alloc] init];
[storeArray addObject:store1];
[storeArray addObject:store2];
[storeArray addObject:store3];

私の質問は、どのように店舗名で配列を並べ替えることができますか?私はこの行を使って配列をアルファベット順にソートできることを知っています:

[nameOfArray sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];

これを私のStoreクラスのストア名にどのように適用できますか?

ベストアンサー

NSSortDescriptor *sortDescriptor =
    [NSSortDescriptor sortDescriptorWithKey:@"name"
                                  ascending:YES
                                   selector:@selector(caseInsensitiveCompare:)];
[nameOfArray sortedArrayUsingDescriptors:@[sortDescriptor]];

関連ドキュメント:

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です