2011-06-04 37 views
0

我已經在一個類中聲明的屬性設置屬性:iphone - 另一個類

.H

@interface myClass : UIView { 
    BOOL doStuff; 
} 

@property BOOL doStuff; 

.M

@synthesize doStuff; 

這個類是另一個代表。在其他類中,我試圖設置該屬性,做這樣的事情

[delegate setDoStuff:YES]; 

我收到一個錯誤,告訴我,「法-setDoStuff:沒有發現......」

如何申報屬性的類,所以其他類可以讀取和設置它們?

謝謝。

回答

2

是你的委託聲明爲類型「ID」?
要麼聲明其他類(它指向你的myclass)的真實類型MyClass
聲明一個委託必須在聲明中實現id的協議。
最後(但不是正確的做法)是對它進行類型轉換[(MyClass
)delegate doStuff]。

1

確保您導入了您的自定義類的標題,並且delegate被聲明爲該類的一個實例。

+0

我必須導入標題嗎?如果代理已設置並且正在工作(而且是因爲我可以調用代理上的方法),爲什麼必須導入標頭?我的意思是,如果我可以訪問委託中的方法,並且setter/getters是「一種」方法,那麼爲什麼他們不被另一個類別看到?我不明白...順便說一句,我已經導入標題,錯誤仍然存​​在... – SpaceDog 2011-06-04 14:07:15

1

您還可以在@property中指定名稱setter函數。

@property (nonatomic,setter = setMyDoStuff,assign) BOOL doStuff;