私は2つの深いif文を持っていると私は、単一の場合のstmtに凝縮することができます場合、私は思ったんだけど場合:コーミング文
:if ([[myScrollView.subviews objectAtIndex:k] isKindOfClass:[UILabel class]])
{
if (((UILabel *)[myScrollView.subviews objectAtIndex:k]).tag >= i)
{
//code
}
}
私はにそれを作ることができるかどうかわからないんだけど
if ([[myScrollView.subviews objectAtIndex:k] isKindOfClass:[UILabel class]] && ((UILabel *)[myScrollView.subviews objectAtIndex:k]).tag >= i)
2番目のif条件は最初の条件に依存しているため(UILabelではなく、.tag値がない場合)、悪いことが起こる可能性があります。
上記のコメントは完全に正確です。あなたは一行でそれをやって何を得るのですか?あなたはそれをより効率的にするつもりはなく、今読むのは難しいです。真剣に言えば、コードの行数が少なくても、コードがより効率的になるわけではありません。 – Abizern
ugh、私は読みやすさのために叩かれました。私の理論的根拠は、声明が2つを読むのが簡単ならば、私の根拠は1つだと思うが、私は2つの利点を見ることができる。私はstmtの場合、常にネストした嫌悪感を持っていました。私はコードの可読性を再評価して改良しようとします。 – Padin215
この例で見落とされている問題は、 'subview'が' readonly'プロパティであるために冗長チェックを実行していることです。これは 'UIView'の配列を返します。 'UIView'は' tag'に応答しますので、最初にチェックする必要はありません。 –