如何在类别上添加私有(标题)属性?

时间:2014-08-28 16:09:04

标签: ios objective-c categories

我的标题中有:

@interface UIImageView (MyImageView)

然后在我的源代码中我想添加一些私有属性,所以我这样做:

@interface UIImageView (MyImageView)
@property (nonatomic, assign) BOOL isBlah;
@end

但我在头文件行上看到Duplicate definition of category 'MyImageView' on interface 'UIImageView'(见上文)。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

您正在创建同一类别的两个实例。将你的第二个命名为其他东西(而不是MyImageView),或者更好,只需在那里使用类扩展:

@interface UIImageView ()
@property (nonatomic, assign) BOOL isBlah;
@end

(虽然奇怪的是,课程扩展在这里工作;但实际上不应该因为我们没有UIImageView的来源。但它确实在iOS 8中...可能是编译器错误或新功能。通常,您可以将此命名为类别而不是扩展,如下面rmaddy所述。)