課程
/移動開發
/iOS
/玩兒轉Swift 2.0(第三季)
根據oc block的經驗,通常我們調用閉包時都會把self聲明為unower,lazy property的閉包會不會也有引用循環的問題?
2016-06-08
源自:玩兒轉Swift 2.0(第三季) 4-5
正在回答
計算屬性的get一般用于使用自身其他屬性計算得到的值 set就是用于得到的新value改變其他屬性的值 顯然需要受到雙方制約的時候才會使用計算屬性
通常只會聲明get屬性 這時候你就無法改變這個計算屬性啦 否則你就破壞了這個計算屬性的意義 顯然 如果你重寫其set方法的時候用self調用自身 妄想改變這個計算屬性的值(顯然這也就使得計算屬性受到外界影響,而不是通過類內部其他屬性計算得出) 系統就會爆出警告說你這樣會自己調用自己 (我試過這樣調用 無限循環卡死了。。。)?
貌似這個屬性一般只調用一次 而且不會調用自身屬性的值 他是用其他屬性算出自身屬性
如果在計算屬性中的Set函數self.value = newValue 就會出現循環引用的警告了
在OC的block中使用self一般先會轉換成weak吧,
還是需要說明一下self的weak或者unower,防止循環應用的產生
會產生循環應用的問題
weibo_之安z_0 提問者
舉報
玩兒轉Swift面向對象,對swift語言的掌握達到中等偏上水平
1 回答單例模式循環調用
2 回答在老師的第一種可失敗的構造函數中,為什么不可以使用強制解包呢?
1 回答didset 初始化不會賦值的疑問
3 回答關于拆包問題
2 回答還會有第四季、第五季么?:)
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2019-01-14
計算屬性的get一般用于使用自身其他屬性計算得到的值 set就是用于得到的新value改變其他屬性的值 顯然需要受到雙方制約的時候才會使用計算屬性
通常只會聲明get屬性 這時候你就無法改變這個計算屬性啦 否則你就破壞了這個計算屬性的意義 顯然 如果你重寫其set方法的時候用self調用自身 妄想改變這個計算屬性的值(顯然這也就使得計算屬性受到外界影響,而不是通過類內部其他屬性計算得出) 系統就會爆出警告說你這樣會自己調用自己 (我試過這樣調用 無限循環卡死了。。。)?
2019-01-14
貌似這個屬性一般只調用一次 而且不會調用自身屬性的值 他是用其他屬性算出自身屬性
如果在計算屬性中的Set函數self.value = newValue 就會出現循環引用的警告了
2016-06-15
在OC的block中使用self一般先會轉換成weak吧,
還是需要說明一下self的weak或者unower,防止循環應用的產生
會產生循環應用的問題