将CGRect作为属性值?

Dav*_*.ca 8 iphone objective-c

CGRect类型是结构类型.如果我想将属性定义为此类型,我应该为此类型使用assign或retain属性吗?

@interface MyClass {
  CGRect rect;
  ...
}
@property (nonatomic, assign) CGRect rect; // or retain?
Run Code Online (Sandbox Code Playgroud)

或者我必须写自己的吸气剂和二传手?

ken*_*ytm 17

assign适用于非对象.(在ARC之前,包括CoreFoundation的东西,例如CFArrayRef只能是assign.)

@property (nonatomic, assign) CGRect rect;
//                            ^^^^^^ don't forget.
Run Code Online (Sandbox Code Playgroud)

除非您不想memcpy用于分配,否则您不需要自定义getter和setter .