2012-07-31 34 views
4

我的理解是一個協議指定方法名稱,並且符合該協議的其他人執行這些方法。iOS如何實現一個協議的@property

那麼協議中聲明的屬性呢?那是爲了實現一個財產的手段來實現其二傳手和吸氣?

+1

請參閱http://stackoverflow.com/questions/844678/how-to-handle-objective-c-protocols-that-c​​ontain-properties和http://stackoverflow.com/questions/3377869/how-在協議中定義和實現屬性 – msk 2012-07-31 18:54:22

+0

謝謝。然而,我們通過@dasblinkenlight – Philip007 2012-07-31 20:15:10

回答

9

屬性是具有特定簽名的一種或兩種方法的奇特名稱,Objective-C提供了一種約定,允許您使用替代點.語法對其進行調用。有聲明,說一個協議之間沒有區別,一對

-(int) foo; 
-(void)setFoo:(int)_foo; 

方法,協議聲明的讀寫屬性:

@property (readwrite) foo; 

所以,你是絕對正確的,實行財產的手段實現一個或兩個方法,具體取決於您是否實現只讀,只寫或讀寫屬性。

+0

得到了一個更好,更簡潔的答案。很好的解釋。現在我懂了。 – Philip007 2012-07-31 20:15:31

0

協議只是確保對象實現一組方法。例如,如果要將對象用作類的委託,則需要確保它實現了要調用的方法。這是協議的要點。

1

正如其他人所說,你只需要實現getter和or setter(取決於屬性)。

我想補充一點,你可以將它們合成:

@屬性(非原子,保留)NSObject的* foo的;

將在結束了:

@synthesize FOO;