如何在Objective-C中将变量添加到类别?

时间:2012-10-21 18:14:35

标签: objective-c ios categories

需要使用新变量(NSArray类型)创建一个类别。

Original Class + Extension.h:

@interface OriginalClass (Extension) {
    NSArray *_array;
}

@property (nonatomic, retain) NSArray *array;

@end

但是我收到了错误:Cannot declare variable inside @interface or @protocol

请帮助解决问题。

3 个答案:

答案 0 :(得分:4)

正如另一方所述,你不能。虽然已指出H2CO3,但您可以使用associative references。在Apple Documents

  

请注意,类别无法为其声明其他实例变量   班级;它只包括方法。但是,所有实例变量   在班级范围内也属于   类别。这包括类声明的所有实例变量,   甚至宣布@private。

如果您想使用关联对象,可以使用this回答。此外,您可以使用Ole Begemann的this帖子。

答案 1 :(得分:3)

你不能,一个类别不能声明额外的实例变量...

参考:here

答案 2 :(得分:2)

简单:您无法使用类别将实例变量添加到类中。

如果您需要存储其他数据:请使用associated objects.