0

データコンテナとしてplistを持つ動作中のアプリがあります。辞書の配列は、viewdidloadのplistから生成されます。セグメント化されたコントロールの選択とobjectforkeysに応じて、メイン配列から3つの異なるサブ配列が生成されます。次に、これらの配列はにデータを入力しUIickerViewます。

このアプリを使用している間、ユーザーは毎回異なるセグメントを選択し、アプリは必要なサブアレイを生成するために毎回アレイ全体をステップスルーする必要があります。

これらのサブ配列をviewdidloadで一度生成して、繰り返し生成する必要がないようにする必要がありますか?

これは大きなファイルではありません(100個の辞書)。アプリの全体的な効率は向上しますか?

4

1 に答える 1

0

すべてのユーザーアクションで数百のコレクションを繰り返すことができ、それに気付くことはありませんが、プロパティを使用してサブ配列をキャッシュすることも非常に簡単です。

怠惰なinitはここでは素晴らしいパターンです....

@property (nonatomic, strong) NSArray *myFilteredArray;
//...
@synthesize myFilteredArray=_myFilteredArray;

- (NSArray *)myFilteredArray {

    if (!_myFilteredArray) {
        NSMutableArray *array = [NSMutableArray array];
        // add to array using the filter logic you have already
        _myFilteredArray = [NSArray arrayWithArray:array];
    }
    return _myFilteredArray;
}

他に何もないとしても、これによりフィルタリングコードを見つけやすくなり、配列ごとに分離できます。これは、すべてをviewDidLoadに埋め込むよりもきれいな場合があります。

于 2012-10-27T05:59:16.387 に答える