原因 - (無効)setUserFilters {配列は、リーク
//init the user filters array
userFilters = [[NSMutableArray alloc] init];
SearchCriteria *tmpSc= [[SearchCriteria alloc] init];
for(int i=0;i<[searchFilters count];i++)
{
tmpSc=[self.searchFilters objectAtIndex:i];
if(tmpSc.enabled==TRUE)
[userFilters addObject:tmpSc];
}
}
searchFiltersをtrueまたはfalseにsettedと私だけなフィルタとテーブルビューを移入するためにuserFiltersを使用することができるフィルタのリストです。 TRUEに設定されています
しかし、行SearchCriteria * tmpSc = [[SearchCriteria alloc] init];私は関数の終わりに私のポインタを緩めるとそれがクラッシュするので、リークを引き起こすと私は解決する方法がわからない
すべてのアイデア?
'objectAtIndex'は一定時間(配列です!)で動作しますが、大きな配列ではそれほど遅くならない、つまり愚かです。 あなたがそれをテストしたことを正直に伝えたいならば、 'objectAtIndex'はあなたが推奨するものより2%以上遅いです。そうすれば、何か他のものにあなたの時間を費やす方が良いでしょう。 – twolfe18
私は、ループで行われている作業の複雑さに応じて、ループの2%〜35%の改善を測定しました(明らかに、ループの作業が少なくなるほど改善されています)。より少ないタイピングが必要であるという事実は、通常、十分なポイントを売ることです。たとえ突然変異が別のスレッドで起こったとしても、誤って間違った動作ではなくループ中に誤って配列を突然変異させると、例外が発生します。知覚されるパフォーマンスが劇的に向上することはよくありません。 –
NSArrayは配列のような操作をサポートするオブジェクトへのインターフェイスを提供するという意味で「配列」です。これは、C配列のように実装されていることは保証されていません。また、オブジェクトへのアクセスの高速性に関するパフォーマンスの保証はありません。 – peterb