[問題] 這樣的情況Block or Delegate比較好呢

作者: powerwolf543 (NixonShin)   2016-01-09 03:32:49
最近對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
作者: zip520123 (SLin HD)   2016-01-09 09:03:00
看得不是很懂...有程式碼可以看嗎?
作者: NelsonT (.)   2016-01-09 13:35:00
這種架構太可怕了,你需要的是 notification
作者: s001582000 (仁傑)   2016-01-09 15:26:00
我對Block比較有愛 Delegate會因為戶吃就卡住了 = =戶->互
作者: yuanruo (罪を憎んで人を憎まず)   2016-01-09 16:28:00
感覺在singleton裡寫其他VC的block回調 沒稿好就leak了
作者: EQQD (EQQD)   2016-01-09 19:47:00
耦合性太高吧
作者: NelsonT (.)   2016-01-09 20:48:00
你根本就不該這樣用singleton,當你的程式變大,多人修改到這個singleton的機會就變大(看你的提問,我覺得很有可能),到時出現問題你會debug到瘋掉
作者: santaclub (聖誕青年)   2016-01-09 21:35:00
Block, 回到vc 再從vc叫tvc
作者: Ghosso (居關)   2016-01-12 11:48:00
雖然看不懂問題 不過notification能避免就避免XD
作者: santaclub (聖誕青年)   2016-01-12 17:23:00
用block 做Completehandler啊
作者: vampirewalk (vampire)   2016-01-14 12:02:00
看起來兩個ViewController直接KVO Object就可以了不需要block設來設去的,太亂了

Links booklink

Contact Us: admin [ a t ] ucptt.com