iOS开发中的对象通信与Combine框架应用
在iOS开发中,对象间的通信是一个重要的主题。以下将详细介绍对象通信的多种方式以及Combine框架的应用。
1. 数据通信的时机
在某些情况下,一个视图控制器会创建另一个视图控制器实例,或者在segue的 prepare(for:sender:) 事件中将源视图控制器和目标视图控制器关联起来。在这些时刻,第一个视图控制器会短暂地持有第二个视图控制器的引用,此时应趁机将所需信息传递给第二个视图控制器,把握这个时机是数据通信的关键。
2. 获取对象引用
有时候,我们知道某个对象已经存在,但却不知如何引用它。比如一个视图控制器需要与另一个视图控制器通信,但既没有实例化该控制器,也不是其segue的源视图控制器。此时,不能简单地创建该类的新实例,因为我们需要的是已存在的特定实例。例如,应用的根视图控制器在应用启动后已经存在,若尝试通过实例化其类来与之通信是无效的:
let theVC = ViewController() // legal but pointless
2.1 通过关系获取可见性
对象间的关系能帮助我们获取对其他对象的引用。例如:
- 子视图可通过 superview 属性访问其父视图。
- 父视图可通过 subviews 属性访问所有子视图,还能通过 viewWithTag(_:) 方法根据标签获取特定子视图。
超级会员免费看
订阅专栏 解锁全文

959

被折叠的 条评论
为什么被折叠?



