Skip to Main Content
iOS 编程基础:Swift、Xcode 和Cocoa 入门指南
book

iOS 编程基础:Swift、Xcode 和Cocoa 入门指南

by Matt Neuburg
January 2017
Intermediate to advanced content levelIntermediate to advanced
552 pages
9h 43m
Chinese
China Machine Press
Content preview from iOS 编程基础:Swift、Xcode 和Cocoa 入门指南
Cocoa
事件
465
11.5
数据源
数据源类似于委托,只不过它的方法提供了供其他对象显示的数据。
Cocoa
中带有
数据源的类主要有
UITableView
UICollectionView
UIPickerView
UIPageView-
Controller
。对于每个类来说,数据源必须要正式使用数据源协议并实现必需的方法。
有些初学者对于数据源的必要性感到惊奇。为何表数据不是表的一部分?为何要有一些
包含着数据的固定的数据结构?原因在于这种架构违背了一般性。使用数据源可以将显
示数据的对象与管理数据的对象分离开来,后者可以自由存储和获取所需的数据(参见
13
章的模型—视图—控制器)。唯一的要求就是数据源必须能快速提供信息,因为
当需要显示数据时会实时地向数据源请求数据。
另一个惊奇之处在于数据源不同于委托。但这又回到一般性问题了;这是一个选项而不
是必需的。并没有什么理由限制数据源与委托不能成为同一个对象,大多数时候它们可
能都是一样的。实际上,在大多数情况下,数据源方法与委托方法可以密切配合;你可
能都意识不到这种差别。
下面这个示例来自于我编写的应用,它实现了
UIPickerView
,让用户可以根据自己输入
的阶段数(“
1
阶段”
2
阶段”等)来配置游戏。前两个是
UIPickerView
数据源方法;
3
个是
UIPickerView
委托方法。它通过这
3
个方法向选择器视图提供内容。
extension NewGameController: UIPickerViewDelegate, UIPickerViewDataSource ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

机器学习实战:基于Scikit-Learn、Keras 和TensorFlow (原书第2 版)

机器学习实战:基于Scikit-Learn、Keras 和TensorFlow (原书第2 版)

Aurélien Géron
Swift 人工智能实战:从基础理论到AI 驱动的应用程序开发

Swift 人工智能实战:从基础理论到AI 驱动的应用程序开发

Mars Geldard, Jonathon Manning, Paris Buttfield-Addison, Tim Nugent

Publisher Resources

ISBN: 9787111556350