1

「firstName」キーで配列をソートしたいとします。

Array = (
   {
     People1 = {
         firstName = @"Jack Adam";
         email = @"adam@gmail.com";
     };
     Address = {
         cityCode = @"TH";
     };
   },
     People2 = {
         firstName = @"Jack DAm";
         email = @"dam@gmail.com";
     };
      Address = {
         city = @"TH";
     };
);
4

5 に答える 5

2

ユーザーソートコンパレータ

NSArray *sortedArray = [unsortedArray sortedArrayUsingComparator:^(NSDictionary *a, NSDictionary *b) {

  return [a[@"People"][@"firstname"] compare:b[@"People"][@"firstname"]];

}];

しかし、あなたのキーは矛盾しています...データはあるべきだと思います

Array = (
{
 People = {
     firstName = @"Jack Adam";
     email = @"adam@gmail.com";
 };
 Address = {
     cityCode = @"TH";
 };
},
 People = {
     firstName = @"Jack DAm";
     email = @"dam@gmail.com";
 };
  Address = {
     city = @"TH";
 };
);
于 2013-11-01T08:05:26.613 に答える
0

ブロックと最新の Objective-C 構文の使用:

NSArray *sortedArray = [unsortedArray sortedArrayUsingComparator:^(NSDictionary *first, NSDictionary *second) {

      return [first[@"Person"] compare:second[@"Person"]];

}];
于 2013-11-01T07:58:33.013 に答える
0

まず、オブジェクトの比較メソッドを実装する必要があります。

- (NSComparisonResult)compare:(Person *)otherObject {
    return [self.birthDate compare:otherObject.birthDate];
}

NSArray *sortedArray;
sortedArray = [drinkDetails sortedArrayUsingSelector:@selector(compare:)];
于 2013-11-01T07:56:47.893 に答える
0

NSSortDescriptor の使用:

NSSortDescriptor *descriptor = [[NSSortDescriptor alloc] initWithKey:@"firstName"  ascending:YES];
    myArray=[stories sortedArrayUsingDescriptors:[NSArray arrayWithObjects:descriptor,nil]];
    temp = [stories copy]; //temp is NSMutableArray

myArray は、並べ替えたい配列です。

于 2013-11-01T08:01:26.967 に答える