べーおの備忘録

iOSアプリ開発や生活のことをツラツラと書きます。

配列の中にDictionaryとかが入っているときのindexのループ

タイトルからしてクソコードの匂い・・・

 

こんな感じでクラスの配列を作って

そのプロパティを順番に取り出すとき

valueForKey使うの気持ち悪くね?

って言われた

 

確かに配列にkeyは不自然だよね

Dictionaryだよね

配列ならindexだよね

 

NSArray<hogeModel*> *hogeList = [self getHogeList];

if (!hogeList) {

       return;

}

for (int i = 0; i < hogeList.count; i++) {

     NSString *hogeStr = [[hogeList valueForKey:@“hoge”] objectAtIndex:i]];

     [self drawHogeLine:hogeStr];

}

 

みればみるほどクソコード・・・

 

んでunderscoreで書き直すっす

 

NSArray<hogeModel*> *hogeList = [self getHogeList];

if (!hogeList) {

       return;

}

Underscore.array(hogeList).pluck(@“hoge”).each(^(id obj){

        [self drawHogeLine:obj];

});

 

あら、すっきり

 

pluckは指定したキーパスで取得した値から配列を作るやつ

eachはそれぞれの要素に処理を適用するやつ

 

詳しくはこちら

http://dev.classmethod.jp/smartphone/iphone/ios-underscore-1/

 

昔この書き方よくやってたなー

消し去りたい