NSMutableArrayにてオブジェクトを並び替える

2013.06.10 Monday 16:03
0
    リストの中身を並べ変える処理について調べてみました。

    ググってもなんかよく分からんので、適当にsortUsingComparatorを使ってみました。


    まずはオブジェクトを定義。
    NSObjectから派生したItemInfoという情報クラスを任意のクラスを作ってみました。


    @interface ItemInfo : NSObject
    {
    @public
        int Index;          // インデックス
        NSString *Name;	// 名前
        int Num;            // 個数
    }
    @end
    
    


    で、それを個数の多い順にソートしてみます。

        NSMutableArray *itemList = [NSMutableArray array];
    
        // apple 3個
        ItemInfo *item = [[ItemInfo alloc] init];
        item->Index = 0;
        item->Name = @"apple";
        item->Num = 3;
        [itemList addObject:item];
    
        // orange 5個
        ItemInfo *item2 = [[ItemInfo alloc] init];
        item2->Index = 1;
        item2->Name = @"orange";
        item2->Num = 5;
        [itemList addObject:item2];
    
        // banana 4個
        ItemInfo *item3 = [[ItemInfo alloc] init];
        item3->Index = 2;
        item3->Name = @"banana";
        item3->Num = 4;
        [itemList addObject:item3];
    
        // リストをログ表示
        NSLog(@"-----------sort 前----------------");
        for (ItemInfo* item in itemList) {
            NSLog(@"name: %@", item->Name);
        }
    
        // リストをソート処理
        [itemList sortUsingComparator:^(id obj1, id obj2) {
            ItemInfo* inf1 = (ItemInfo*)obj1;
            ItemInfo* inf2 = (ItemInfo*)obj2;
            
            if(inf1->Num > inf2->Num){
                return(NSOrderedAscending);
            }
            if(inf1->Num < inf2->Num){
                return(NSOrderedDescending);
            }
            return (NSOrderedSame);
        }];
    
        // リストをログ表示
        NSLog(@"-----------sort 後----------------");
        for (ItemInfo* item in itemList) {
            NSLog(@"name: %@", item->Name);
        }
    


    [実行結果]

    -----------sort 前----------------
    name: apple
    name: orange
    name: banana
    -----------sort 後----------------
    name: orange
    name: banana
    name: apple


    個数の多い順にちゃんとソートされていました。
    とりあえず、こんな感じでいいのかな?(^^;;
    category:基本文法 | by:こもcomments(0) | - | -
    ■Sponsored Link
    Comment








       

    Calender
         12
    3456789
    10111213141516
    17181920212223
    2425262728  
    << February 2019 >>
    Sponsored Link
    Selected entry
    Category
    Archives
    Recent comment
    • NSUnknownKeyExceptionが出た時の回避方法
      funakin
    • NSUnknownKeyExceptionが出た時の回避方法
      itotake
    • 画面を縦方向に固定にする
      iphone 画面 固定
    • NSUnknownKeyExceptionが出た時の回避方法
    • NSUnknownKeyExceptionが出た時の回避方法
      atsushi
    • NSUnknownKeyExceptionが出た時の回避方法
      kanejun
    • UITableViewCellに置いたボタンのイベント処理
      こも
    • UITableViewCellに置いたボタンのイベント処理
      かつお
    • NSUnknownKeyExceptionが出た時の回避方法
      こも
    • NSUnknownKeyExceptionが出た時の回避方法
       
    Sponsored Link
    Link
    Profile
    Search
    Others
    Mobile
    qrcode
    Powered
    無料ブログ作成サービス JUGEM