协议和代表们

发布于 2024-12-07 03:54:49 字数 523 浏览 0 评论 0原文

可能的重复:
通知、委托和协议之间有什么区别?

我是目标 C 的新手。想要用几句话来理解协议委托的概念。就像在什么情况下我应该考虑声明一个协议,然后在我的类中作为委托使用它或让其他类使用它。

为什么我不能让我的类完成相同的工作而不是协议?

感谢您抽出时间。

Possible Duplicate:
What is the difference between Notifications, Delegates, and Protocols?

I am new in Objective C. Would like to understand the concept of Protocols and Delegates in a few words. Like under what situation should I consider declaring a Protocol, and then consume it in my classes as delegates or let other classes consume it.

Instead of Protocols why can't I make my classes do the same job?

Thanks for your time.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

ペ泪落弦音 2024-12-14 03:54:49

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

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

实现(必需)方法。

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

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

@property (assign) id<yourProtocol> delegate;

请注意,您不保留委托。你(弱)引用是因为你不想进入保留圈(A 保留 B,B 保留 A)。

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

Protocols are like contracts, Your class must implement all methods that are @required, @optional are on the other hand not required.

Instead of Protocols why can't I make my classes do the same job?
You can, but like I wrote above, its a contract. You know that
class

implements the (Required) methods.

delegate is (should be) a weak reference to the class that implements the given protocol.

You are recommended to use the following attribute on your delegateproperty:

@property (assign) id<yourProtocol> delegate;

Notice that you don't retain your delegate. You you (weak) reference because you dont want to get into a retain circle (A retains B, and B retains A).

I hope my explanation helped a bit.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文