首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >两个对象可以是彼此的代理吗?

两个对象可以是彼此的代理吗?
EN

Stack Overflow用户
提问于 2012-07-15 22:29:50
回答 1查看 490关注 0票数 2

有两个对象作为彼此的delgates可以吗?我的场景是,我有一个视图,它以两种模式显示。第一种:创建模式,第二种:编辑模式

在Create Mode中,所有字段都是空的,我从用户填写的视图中获取数据,然后更新我的数据模型。

在View Mode中,我填充来自我的数据模型的视图。

这是使用拆分视图控制器来完成的(正因为如此,我不得不使用委托)。我希望我能更好地解释这一点,但这是我能做的最好的事情。到目前为止,我正在使用委派从A到B通信,并使用通知从B到A。

如果我在两种方式中都使用委派,这会很好地工作吗?或者有没有什么我无法预见的复杂性?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-15 22:40:38

可能会出现一些问题,但如果您采取了必要的预防措施,就会很好:

  1. 确保两个委托都是弱引用的。这意味着在ARC或@property (assign)上使用@property (weak)。这将防止来自occurring.
  2. Ensure的保留循环您不会遇到这样的情况:一个代理方法调用另一个控制器的委托方法,后者在第一个控制器中调用相同的代理方法,依此类推。如果你不小心,你很容易得到一个无限循环。

在这种情况下,关于这是否是最好的设计模式的讨论或辩论并不是真正属于这种情况的东西。但是,如果你仔细的话,这样做是可能的,这就是你问题的答案。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11492716

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档