0

この単純なテストでは、インデックスが有効であることを確認した後、objectAtIndex: メソッドを 2 回呼び出す代わりに変数を割り当てる価値があるでしょうか?

NSString *s = [myArray objectAtIndex:2];
if (s) {
Test *t = [Test initFromString:s];
}

それ以外の

if ([myArray objectAtIndex:2]) {
Test *t = [Test initFromString:[myArray objectAtIndex:2]];
}
4

1 に答える 1

0

パフォーマンスの観点からは、コードが非常にホットなパスにない限り、価値はありません (そして、あなたはそれを知っているでしょう)。メッセージの送信は実質的に無料であり、特定のインデックスでオブジェクトを検索するのも、ほとんどの状況で気にするには速すぎます。

ただし、この変更によりコードが読みやすくなります。まず、コンテナーからプルするものに名前を付けることができます ( などtestName)。第 2 に、2 つの繰り返し呼び出しを読み取るときに、objectAtIndexそれが本当に同じコードであることを確認する必要があります。別の変数を導入すると、明らかに認知負荷が軽減されます。

于 2012-11-26T12:54:52.290 に答える