2011-09-29 144 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)。

我希望我的解释有所帮助。