这可能是iPhone特有的,我不确定。在为模拟器构建时,编译器不会抱怨,但在编译设备时,当我尝试设置对象引用的属性时,它会抛出一些时髦的错误。例如,
@property (nonatomic) CGRect &finalFrame;
和coressponding合成器
@synthesize finalFrame;
表示声明为
的变量CGRect finalFrame;
给出错误
但是我可以使用以下方法手动完成:
- (CGRect&)finalFrame;
- (void)setFinalFrame:(CGRect&)aFrame;
这是一个gcc bug吗?它确实为模拟器编译。
答案 0 :(得分:5)
您的属性被声明为引用类型(CGRect&
),但您的实例变量不是引用类型(CGRect
)。它们必须相同才能使用@synthesize
。
另外,使用C ++引用类型作为Objective-C属性有点奇怪,但我想只要将所有文件编译为Objective-C ++就可以工作。