协议及委托
问题描述:
可能重复:
What is the difference between Notifications, Delegates, and Protocols?协议及委托
我在目标C新。想用几句话来理解Protocols
和Delegates
的概念。就像在什么情况下我应该考虑声明一个Protocol
,然后在我的类中作为委托使用它或让其他类使用它。
而不是Protocols
为什么我不能让我的班级做同样的工作?
感谢您的时间。
答
协议就像合约,你的类必须实现所有@required方法,@optional另一方面不是必需的。
而不是协议为什么我不能让我的课做同样的工作? 你可以,但像我上面写的那样,它是一份合同。您知道 类
实现(必需)方法。
委托是(应该)对实现给定协议的类的弱引用。
建议您使用以下属性您delegateproperty:
@property (assign) id<yourProtocol> delegate;
请注意,您不保留您的委托。你(弱)参考,因为你不想进入保留圈(A保留B,而B保留A)。
我希望我的解释有所帮助。
[通知,委托和协议之间有什么区别?](http://*.com/questions/7118598/)可能的副本[代表和协议之间的区别](http://*.com/questions/5431413 /在协议和委托之间的区别)也[委托与协议](http://*.com/questions/6361958/delegate-vs-protocol) –