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:

arrow
arrow
    全站熱搜

    小賢 發表在 痞客邦 留言(0) 人氣()