1

少し前にこの種の構文に出くわしました:

[myView setFrame:({
    CGRect frame = myView.frame;
    frame.size.height = heightValue;
    frame;
})];

これをどこで見たのか思い出せませんが、クラシックの代わりに使用する利点があるかどうか疑問に思っていました:

CGRect frame = myView.frame;
frame.size.height = heightValue;
[myView setFrame:frame];
4

3 に答える 3

6

前者の構文は、メッセージの送信frame後に作成に使用された一時ストレージを再利用できるように、単にスコープを制限します。setFrame

しかし、私の意見では、これは最適化のためにコードを読む際に精神的な労力を追加するものの 1 つです。

于 2013-09-20T14:50:19.717 に答える
3

frameへの呼び出しの外側にスコープされることを防ぎますsetFrame:が、読みやすさを犠牲にします。

于 2013-09-20T14:51:13.420 に答える