6

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

原始类+扩展.h:

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

@property (nonatomic, retain) NSArray *array;

@end

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

请帮助解决问题。

4

3 回答 3

4

正如另一个所说,你不能。尽管已经指出 H2CO3,但您可以使用关联引用。在Apple 文档上:

请注意,类别不能为该类声明额外的实例变量;它只包括方法。但是,类范围内的所有实例变量也在类范围内。这包括类声明的所有实例变量,甚至是声明为@private 的实例变量。

如果你想去关联对象,你可以使用这个答案。此外,您可以使用Ole Begemann 的这篇文章。

于 2012-10-21T18:41:57.563 回答
3

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

参考:这里

于 2012-10-21T18:16:29.817 回答
2

很简单:您不能使用类别将实例变量添加到类中。

如果您需要存储其他数据:使用关联对象。

于 2012-10-21T18:15:56.673 回答