带有属性的@interface是否只需要@implementation?

时间:2017-10-17 16:59:18

标签: objective-c objective-c-runtime objective-c-2.0

我想在Objective-C头文件中定义一个类似C结构的文件,但只包含@implementation,因为这只是一个头文件而没有相应的@implementation。这甚至可能吗? (我也不想强制头文件包含者添加@interface,因为这是一个简单的描述符定义)

我希望它是_ivars定义,所以想要扩展它并向其添加更多数据成员的用户可以这样做(再次,只有{{1}})。但是,如果您想到某些事情,其他建议可能会有效。

1 个答案:

答案 0 :(得分:2)

是的,必须为编译器编译的类声明@implementation,以使类在运行时实现(包括支持@property声明的存储。

编译完成后,该类无法通过自动备份的其他@properties进行扩展(可以通过类别进行扩展,但您可以自己进行存储,并且通常不建议使用类的分类扩展)。