我想知道到底有什麼用(取)訪問讀取屬性的值,並直接使用伊娃之間的區別是什麼?目標C - 使用屬性get訪問VS直接使用伊娃
說我有一類聲明的屬性:
@interface Foo : NSObject
@property (strong) NSString *someString;
@end
而在執行我使用它。以下兩行之間是否有區別:
someLabel.text = self.someString;
someLabel.text = _someString;
對於set訪問器很明顯。 Afaik強大的屬性訪問者照顧保留和釋放(一個有趣的'側面問題'將是,如果ARC改變,即直接設置iVar [假設它不是__weak iVar]也保留並正確使用ARC發佈),也KVO需要使用訪問器才能正常工作等等。但是,獲取者呢?
如果有什麼區別,有認爲是最佳做法的一種方式?
THX
感謝您的詳細解釋,但我的問題不是爲什麼使用訪問器,而是如果我已經有一個屬性(私人或公共無所謂)使用getter(自我。 someProperty)和使用iVar(_someProperty)。但thx無論如何:) – Tobi
噢好吧。瞭解。沒有重大區別。只有方便之處在於,在稍後的時間點,只要有人試圖訪問它,就可以重新實現您的getter添加一些新功能。在稍後的階段中,您要在控制檯中打印值,只要有人訪問您的參數,但參數在您的代碼中隨處可見。在這種情況下,你只需要在類中實現你的getter方法。自動執行的任何內容都可以在其他地方正常工作。 – iDev