亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么要使用ivar?

為什么要使用ivar?

iOS
蠱毒傳說 2019-10-14 13:59:12
我通常會以相反的方式問這個問題,例如,每個ivar都必須是一個屬性嗎?(而且我喜歡bbum對這個問題的回答)。我幾乎只在代碼中使用屬性。但是,我經常與一個承包商合作,該承包商已經在iOS上開發了很長時間,并且是傳統的游戲程序員。他編寫的代碼幾乎不聲明任何屬性,而是依靠ivars。我認為他這樣做是因為1.)他習慣了,因為直到Objective C 2.0(Oct '07)和2.)時,屬性總是不存在的,以便不通過getter / setter來獲得最小的性能提升。盡管他編寫的代碼不會泄漏,但我仍然希望他使用屬性而不是ivars。我們討論了一下,由于我們沒有使用KVO,他或多或少地認為沒有理由使用屬性,并且他在處理內存問題方面經驗豐富。我的問題是更多...為什么您要使用ivar期間-經驗豐富與否。是否確實有很大的性能差異可以證明使用ivar是合理的?同樣,為了澄清起見,我根據需要覆蓋了setter和getter,并使用了與getter / setter內部的該屬性相關聯的ivar。但是,在getter / setter或init之外,我始終使用self.myProperty語法。編輯1我感謝所有的良好回應。我想解決的一個看起來不正確的問題是,使用ivar可以封裝,而使用屬性則不需要。只需在類延續中定義屬性即可。這將使財產對外界隱藏。您還可以在接口中將屬性聲明為readonly,然后在實現中將其重新定義為readwrite,例如:// readonly for outsiders@property (nonatomic, copy, readonly) NSString * name;并在課堂上繼續學習:// readwrite within this file@property (nonatomic, copy) NSString * name;要使其完全“私有”,只能在類繼續中聲明它。
查看完整描述

3 回答

  • 3 回答
  • 0 關注
  • 407 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號