【问题标题】:Protocols & delegates [duplicate]协议和代表[重复]
【发布时间】:2011-09-29 07:00:54
【问题描述】:

可能重复:
What is the difference between Notifications, Delegates, and Protocols?

我是Objective C的新手。想用几句话理解ProtocolsDelegates的概念。比如在什么情况下我应该考虑声明一个Protocol,然后在我的类中作为委托使用它或者让其他类使用它。

为什么我不能让我的班级做同样的工作,而不是 Protocols

感谢您的宝贵时间。

【问题讨论】:

标签: iphone objective-c delegates protocols


【解决方案1】:

协议就像契约,你的类必须实现所有@required的方法,而@optional则不是必需的。

为什么我不能让我的类做同样的工作,而不是协议? 你可以,但就像我上面写的那样,它是一份合同。你知道的 类

实现(必需)方法。

委托是(应该是)对实现给定协议的类的弱引用。

建议您在委托属性上使用以下属性:

@property (assign) id<yourProtocol> delegate;

请注意,您不会保留您的委托人。你是你(弱)参考,因为你不想进入一个保留圈(A 保留 B,B 保留 A)。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-21
    • 2018-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-05
    相关资源
    最近更新 更多