[問題] Delegate & DataSource觀念及疑問

看板MacDev作者 (severus)時間9年前 (2015/03/09 19:29), 編輯推噓0(006)
留言6則, 3人參與, 最新討論串1/1
剛學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://www.ptt.cc/bbs/MacDev/M.1425900588.A.40E.html

03/09 21:40, , 1F
想太多了 都是delegate 只是它改名稱叫datasource..
03/09 21:40, 1F

03/09 21:49, , 2F
delegate通常作為回傳結果使用,dataSource是與上一層要
03/09 21:49, 2F

03/09 21:49, , 3F
資料用,dataSource=delegate,差別只是有沒有回傳值而已
03/09 21:49, 3F

03/10 11:29, , 4F
所以我只需要繼承UIxxxxxdelegate就可以了不需datasource嗎
03/10 11:29, 4F

03/10 12:18, , 5F
繼承只是讓它有自動完成的功能而已
03/10 12:18, 5F

03/10 12:44, , 6F
了解 感謝
03/10 12:44, 6F
文章代碼(AID): #1K_OGiGE (MacDev)