Objective C语法差异

Bro*_*oco 1 syntax objective-c

我刚才遇到过这种语法:

[myView setFrame:({
    CGRect frame = myView.frame;
    frame.size.height = heightValue;
    frame;
})];
Run Code Online (Sandbox Code Playgroud)

我不记得我在哪里看到这个,但我想知道使用它而不是经典有什么好处:

CGRect frame = myView.frame;
frame.size.height = heightValue;
[myView setFrame:frame];
Run Code Online (Sandbox Code Playgroud)

yan*_*yan 6

前一种语法只是限制了frame这样的范围,即在setFrame发送消息之后可以回收用于创建它的临时存储.

然而,在我看来,这是在阅读代码中增加精神上的努力之一,编译器几乎肯定会采用这种优化.