Swift的setter與getter

最近在公司閒來無事,就在網上找各類項目來學着作,基本都是OC的,而後本身差很少翻譯成Swift。但是寫着寫着的時候發現本身Swift那個蛋疼啊,愈來愈感受本身不懂Swift,因此寫下一些本菜鳥碰到的一些問題與你們分享。網絡

setter與getter算是比較蛋疼的問題了,由於以前習慣的OC的思惟,因此老想着用OC的習慣去寫setter和getter,因而就碰到了下面一些比較低級的錯誤了。spa

本菜鳥一開始覺得是內存錯誤了因而開始一頓亂找,糾結半天以後發現原來是遞歸了,在前一句加上打印語句,翻譯

接着運行發現調試時打印以下調試

頓時腦海裏想各類解決方法,無果(get這樣也是一樣的錯誤)。徹底和OC的不同的,不能用OC的習慣去寫Swift。orm

而後在官方文檔裏看到有計算屬性與存儲屬性這兩個概念,顧名思義,計算屬性不是用來存儲變量或者常量的。結合網絡上的各類方法,後得出一套解決方案。遞歸


定義兩個變量。第一個用來作計算屬性,並不存放具體的值,第二個纔是存儲屬性。在計算屬性中的setter裏給存儲屬性賦值,getter裏返回存儲屬性的值,運行結果以下內存

打印:文檔

固然,真正應用中不會像這段示例代碼那麼簡單,setter 與getter中確定會作更多處理,這裏只是給你們展現一下效果。若有說的不對的地方,跪求大神指教,但願對你們有所幫助!get

相關文章
相關標籤/搜索