2014-08-28 55 views
0

我有我的頭:如何在類別中添加私人(在標題中)屬性?

@interface UIImageView (MyImageView) 

然後在我的來源,我想補充一些私人性質的,所以我做的:

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

但我的頭文件行獲得Duplicate definition of category 'MyImageView' on interface 'UIImageView' (往上看)。

我在做什麼錯?

回答

1

您正在創建同一類別的兩個實例。命名第二別的東西(而不是MyImageView),或更好,但只使用一個類擴展有:

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

(雖然這是奇怪的是,一類擴展在這裏工作,它實際上不應該,因爲我們沒有這個可能是一個編譯器bug或者一個新的特性,通常你可以用下面的rmaddy註釋來表示這個命名的類別而不是擴展名。)

+1

1)你能創建嗎? 'UIImageView'上的類擴展(或者其他你沒有寫的類)? 2)如果你可以添加一個類擴展到你沒有寫的類中,你仍然不能添加一個ivar到這個類(因爲你不能編譯基類實現),所以這個屬性不能被支持一個合成的伊娃。 – rmaddy 2014-08-28 16:16:25

+0

@maddy所以這不起作用? – 2014-08-28 16:18:41

+1

@意義問題您無法通過類別添加ivars。您可以添加屬性,但不能由伊娃支持。有幾個選擇來解決這個限制。儘管最有可能你會更好地創建一個子類而不是一個類,這取決於屬性的使用方式。 – rmaddy 2014-08-28 16:22:09