2011-09-29 187 views
0

可能重複:
What is the difference between Notifications, Delegates, and Protocols?協議及委託

我在目標C新。想用幾句話來理解ProtocolsDelegates的概念。就像在什麼情況下我應該考慮聲明一個Protocol,然後在我的類中作爲委託使用它或讓其他類使用它。

而不是Protocols爲什麼我不能讓我的班級做同樣的工作?

感謝您的時間。

+0

[通知,委託和協議之間有什麼區別?](http://stackoverflow.com/questions/7118598/)可能的副本[代表和協議之間的區別](http://stackoverflow.com/questions/5431413 /在協議和委託之間的區別)也[委託與協議](http://stackoverflow.com/questions/6361958/delegate-vs-protocol) –

回答

0

協議就像合約,你的類必須實現所有@required方法,@optional另一方面不是必需的。

而不是協議爲什麼我不能讓我的課做同樣的工作? 你可以,但像我上面寫的那樣,它是一份合同。您知道 類

實現(必需)方法。

委託是(應該)對實現給定協議的類的弱引用。

建議您使用以下屬性您delegateproperty:

@property (assign) id<yourProtocol> delegate; 

請注意,您不保留您的委託。你(弱)參考,因爲你不想進入保留圈(A保留B,而B保留A)。

我希望我的解釋有所幫助。