0

NSDictionary をフィルタリングする結果の数を制限するためだけに、変数を宣言しています。余分な変数を避けてこれを行う他の方法はありますか?

私のコード:

//Pick one part from each item
__block int partsCounter = 0;
NSSet *itemsParts = [self.deckDictionary keysOfEntriesPassingTest:^BOOL(id key, id obj, BOOL *stop) {

    //filter with itemRef value
    CollectiblePart* part = (CollectiblePart*)obj;
    if([candidatesSet containsObject:[NSNumber numberWithInt: part.itemRef]]){

        if(partsCounter < quantity)
        {
            partsCounter++;
            return YES;
        }else{
            //stop the filtering
            return (*stop = NO);
        }
    }else{
        return NO;
    }
}];
4

1 に答える 1

0

いいえ、それが最善の方法です。

このメソッドではブロックを途中で終了できますが、なぜそうしなければならないのかがわかりません。

セマンティクスでは、何かが特定のしきい値を超えた場合に追跡するために集計を保持する必要があります。それを行うための変数を持つことは理にかなっています。

于 2012-10-24T21:50:43.640 に答える