2010-09-14 97 views
0

我得到這個警告以下行傳遞「objc_setProperty」的說法4:從兼容的指針類型

@synthesize labels; 

現在,我的聲明(在.h文件)的其餘部分如下:

@interface Menus:SuperClass<Protocols> 
{ 
    ...  
    UILabel **labels; 
} 
@property (nonatomic, retain) UILabel    **labels; 

有誰知道爲什麼會發生這種情況?

回答

3

A retain屬性僅適用於類類型對象(即指向objc_object的指針)。生成的設置者將例如嘗試對其獲取的參數調用-retain,這顯然不適用於指針指針。

您可以優先使用像NSArray這樣的容器。如果因爲某些原因想要使用相當非典型的動態C型陣列,可以使用assign屬性。

+2

我會進一步說,'UILabels **'是一個非常非典型的模式。爲什麼不是'NSArray'或'NSMutableArray'? – bbum 2010-09-15 00:09:26

+0

@bbum:對,我重新說了一下,以免給人錯誤的印象。 – 2010-09-15 00:14:14