close
在App中會很常需要call WebAPI後,修改一些狀態,這通常是非同步的,會在closure或是delegate來處理...
但在Value types with MVVM中,如要修改自己的struct,就不是那麼直覺了...
(在closure中修改struct的text屬性)
(因為Value type的特性,每次用"="指派,會將自己的Value以智慧型的方式複製過去,所以這只會修改到另一個copy...)
後來想到另一種可行的方式,使用Reference type來進行修改,只要傳入一個ViewController到struct中,再透過他來修改他擁有的ViewModel
(使用Reference type的ViewController.ViewModel 來修改)
(ViewController在init的時候傳self進入)
(透過Reference type的特性,不過複製幾個instance,最後都會參考到同一個ViewController,再透過ViewController來修改到他所擁有的那一份ViewModel的屬性!)
Demo:
全站熱搜
留言列表