看板 MacDev 關於我們 聯絡資訊
剛學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
tentenlee: 想太多了 都是delegate 只是它改名稱叫datasource.. 03/09 21:40
darktt: delegate通常作為回傳結果使用,dataSource是與上一層要 03/09 21:49
darktt: 資料用,dataSource=delegate,差別只是有沒有回傳值而已 03/09 21:49
fenir: 所以我只需要繼承UIxxxxxdelegate就可以了不需datasource嗎 03/10 11:29
darktt: 繼承只是讓它有自動完成的功能而已 03/10 12:18
fenir: 了解 感謝 03/10 12:44