我试图把它放在我的 View 对象的头文件中:
@property (nonatomic) UIColor color;
存储在此 View 中绘制线条应使用的颜色。
Xcode 在这一行给我一个错误:
Interface type cannot be statically allocated
这是什么意思,我该怎么办?
编辑:
我确实加了一个*,在合成的时候,它说:
ARC 禁止合成具有未指定所有权或存储属性的 Objective C 对象的属性?
最佳答案
您的变量是针对对象类型的,因此必须声明为指针:
@property (nonatomic) UIColor * color; // Note the asterisk
在这种情况下,“静态分配”意味着该对象的内存是在编译时分配的。然而,Obj-C 中的所有对象都是在运行时分配并通过指针访问的。
“接口(interface)类型”是一个对编译器有意义的技术性术语,在这里并不是很重要。这意味着UIColor
表示编译器希望您与变量color
交互的接口(interface)。指向的对象的实际类型可能不同(如 class cluster,如 NSString
)。
关于objective-c - 接口(interface)类型不能静态分配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8460340/