[問題] 這樣的情況Block or Delegate比較好呢
最近對Delegate還滿有感覺的
而且也覺得滿好用
但是Block還是有些許陌生
一般來說好像都是放在方法裡面變成一個匿名的方法
還有也能使用proprety或內部變數宣告
最近遇到一個情況一直思考怎麼寫比較好
我有一個ViewController簡稱VC
一個TableViewController簡稱TVC
一個Singleton Object簡稱Object
假設今天我在VC中按了某一個button
觸發了Object的其中一個方法
然後這個方法執行完要觸發TVC reloaddata
我是寫了一個proprety的block在Object中
然後讓TVC去讀去這個block
把reloaddata寫在這個block中
還有另一個是我在Object跑一個NSURLSession
在Task的Block中去更新VC的資料
這邊我是幫Object寫了Delegate
然後讓Task需要更新UI的地方插入Protocol
請問以上兩種情況有沒有比較好的寫法呢
我總覺得這樣設計怪怪的
而且好像很少看到有人把Block寫成proprety
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.177.172.242
※ 文章網址: https://www.ptt.cc/bbs/MacDev/M.1452281572.A.6A5.html
推
01/09 09:03, , 1F
01/09 09:03, 1F
我在想想看如何表達這個情況
推
01/09 13:35, , 2F
01/09 13:35, 2F
像以上這兩種情況我都有辦法用Protocol和Block達成,請問使用notification的原因是甚麼呢?可以讓架構比較乾淨嗎?
推
01/09 15:26, , 3F
01/09 15:26, 3F
→
01/09 15:26, , 4F
01/09 15:26, 4F
請問互吃是指記憶體互相被綁住嗎?
→
01/09 16:28, , 5F
01/09 16:28, 5F
所以如果我在singleton的物件block中裡面放了一個VC的UI元件指標,那這個UI元件指標也會被綁在singleton的物件中嗎?當VC被釋放,這個元件也不會被釋放這樣?
※ 編輯: powerwolf543 (180.177.172.242), 01/09/2016 17:14:40
推
01/09 19:47, , 6F
01/09 19:47, 6F
推
01/09 20:48, , 7F
01/09 20:48, 7F
→
01/09 20:48, , 8F
01/09 20:48, 8F
→
01/09 20:48, , 9F
01/09 20:48, 9F
謝謝,好像有點懂那個意思了。
推
01/09 21:35, , 10F
01/09 21:35, 10F
在block中寫嗎?
如果物件中有一個方法是被NSTimer固定執行的話
像是我每秒鐘向伺服器要一次資料
然後再要到資料的時候更新VC
這樣有辦法用暱名block的方式嗎
覺得NSTimer好難用
※ 編輯: powerwolf543 (180.177.172.242), 01/09/2016 23:24:18
推
01/12 11:48, , 11F
01/12 11:48, 11F
不好意思,感覺把code post上來就很亂,我本身也不太喜歡notification,雖然很方便,但是感覺就是不對。
推
01/12 17:23, , 12F
01/12 17:23, 12F
用proprety的方式嗎?還是用方法帶一個匿名的block呢?
※ 編輯: powerwolf543 (180.177.172.242), 01/12/2016 21:19:16
→
01/14 12:02, , 13F
01/14 12:02, 13F
→
01/14 12:04, , 14F
01/14 12:04, 14F