作者fenir (severus)
看板MacDev
标题[问题] Delegate & DataSource观念及疑问
时间Mon Mar 9 19:29:40 2015
刚学swift不是很熟悉,想请教一下delegate & datasource的观念
以下是我google後自己的理解,不晓得正不正确
--------------------------------------------
用picker view当例子,先创一个single view,把picker view拉到上面
picker view本身需要设定一些参数(component、显示的行数、显示的文字)
这些设定不写在自己的.swift档,而是集中在view controller的地方统一将里面所有物件
需要做的设定写在view controller的.swift档里。
所以说某个view里面的物件需要实做的时候,需要在ViewController.swift继承
该物件的delegate & datasource
---------------------------------------------
以上解译对不对?
另外我有一些疑问是
1. delegate中文是指派,dataSource是资料来源,可是以picker view来说:
DataSource里包含设定# of component和# of rows
delegate里包含每一列显示的String
但是我怎麽觉得每一列显示的String应该是属於资料来源,
component & rows才是delegate(指派)做的事啊?
还是有什麽更好的记忆方法,我一直搞混这两个
2. 刚做一个简单的picker view练习,开single view proj. 把picker view拉上去
原本我以为class ViewController有继承
UIPickerViewDelegate & UIPickerViewDataSource 就可以了
但是发现这样没有显示任何内容,後来才发现要在Storyboard的地方把picker view
右边有一个连结图示,将delegate拉向view controller连结起来才可以
所以是需要拉线+继承才正确吗?
https://www.youtube.com/watch?v=MdXmIViD17U&t=467
这篇教学在继承的部份不需要UIPickerViewDataSource也可以实做component & rows
的func,为什麽?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 220.137.139.48
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/MacDev/M.1425900588.A.40E.html
1F:→ tentenlee: 想太多了 都是delegate 只是它改名称叫datasource.. 03/09 21:40
2F:→ darktt: delegate通常作为回传结果使用,dataSource是与上一层要 03/09 21:49
3F:→ darktt: 资料用,dataSource=delegate,差别只是有没有回传值而已 03/09 21:49
4F:→ fenir: 所以我只需要继承UIxxxxxdelegate就可以了不需datasource吗 03/10 11:29
5F:→ darktt: 继承只是让它有自动完成的功能而已 03/10 12:18
6F:→ fenir: 了解 感谢 03/10 12:44