2012-11-29 118 views
0

在我的iPhone應用程序中,我有一個名爲isAddressCell的BOOL。這很好,我可以這樣稱呼:Custom BOOL Getter/Setter?

[cell setIsAddressCell:YES]; 

沒有問題。

但是,我已經環顧創建一個自定義setter方法,並沒有創建一個運氣,它看起來我的BOOL從未實際設置。我有我嘗試過的setter方法代碼失敗。

所有我想要做的,當setIsAddressCell被調用,根據價值,某些其他行動將發生。真的很簡單,希望你能幫上忙。

電流,非功能性的設置方法:

@property (nonatomic, assign, setter = setIsAddressCell:) BOOL isAddressCell; 

-(void)setIsAddressCell:(BOOL)addressCell 
{ 
    if (addressCell) 
    { 
     //Do stuff... 
    } 
    else 
    { 
     //Do different stuff... 
    } 
} 
+1

請注意,'setter = setIsAddressCell:'是多餘的(因爲自動生成的setter也是'setIsAddressCell:') – Alladinian

+0

因此,如果我不想更改方法名稱,那麼我可以添加我的方法,要將該setter添加到該屬性? –

+1

是的,你只是重寫像其他方法一樣的默認方法。 – Alladinian

回答

1

我被一個虛設。告訴我們,如果我仍然這樣做是錯誤的,但我應該有它這樣的:

-(void)setIsAddressCell:(BOOL)addressCell 
{ 
    if (addressCell) 
    { 
     //Do stuff... 
    } 
    else 
    { 
     //Do different stuff... 
    } 

    isAddressCell = addressCell; 
} 

isAddressCell = addressCell;

這位是關鍵,我愚蠢地沒有設置我的手動設置方法結束時的值。衛生署。

+0

當然可以。我很想問你在「//做什麼......」和「//做不同的事情......」中做了什麼,以及你如何在你的設定器方法中設定屬性。最後,設置屬性值是一個設置者的全部內容。 :) –