Modifying properties in place 调整属性

如果你想把一个按钮往下移 10 像素的话,你会在 Swift 里面这样写:

button.frame.origin.x += 10

但是在 Objective-C 里这么写是不能通过编译的。

你现在应该已经知道了属性的工作原理,也就能猜到原因。这是因为这一行代码同时读写了属性,也就是说同时获取这个值(设置 X 原点),并且改变了它(加 10 像素)。

在 Objective-C 代码里面,这两步是不可能同事完成的,一定要把它分开来写:

CGRect frame = button.frame;
button.frame = CGRectOffset(frame, 0, 50);

results matching ""

    No results matching ""