Expression is not assignable 错误与 CGRect

Expression is not assignable error with CGRect

我正在尝试创建 CGRect 属性。

@property (nonatomic) CGRect myRect;

然后,我设置了框架:

self.myRect = self.frame;
self.myRect.size.height = 10; // Error

我收到一条错误消息 "Expression is not assignable"。为什么我会这样?我不能更改 CGRect 的大小吗?

这样做。

_myRect = self.frame;
_myRect.size.height = 10;

self.myRect.size.height = 10 等同于 [ self myRect ].size.height = 10

您必须阅读 CGRect 属性,修改它,然后写回:

CGRect r = [ self myRect ] ;
// modify r here
[ self setMyRect:r ] ;

或:

CGRect r = self.myRect ;
// modify r here
self.myRect = r ;