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

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

目標C中強與弱的區別

目標C中強與弱的區別

繁華開滿天機 2019-06-29 14:57:45
目標C中強與弱的區別我是新來的,所以我的第一個問題是:.之間有什么區別?strong和weak在……里面@property指向對象的指針聲明?還有,是什么nonatomic刻?。?
查看完整描述

3 回答

?
繁星coding

TA貢獻1797條經驗 獲得超4個贊

強引用(在大多數情況下將使用該引用)意味著您希望“擁有”使用此屬性/變量引用的對象。編譯器將注意任何分配給該屬性的對象都不會被銷毀,只要您用強引用指向它。只有在將屬性設置為nil該對象是否會被銷毀(除非一個或多個其他對象也持有對其的強烈引用)。

相反,如果引用較弱,則表示不希望控制對象的生存期。您所引用的對象弱只存在,因為至少有一個其他對象持有對它的強引用。一旦不再是這種情況,該對象將被銷毀,您的弱屬性將自動設置為nil..IOS中最常見的弱引用例是:

  1. 委托屬性,這些屬性通常被弱引用以避免保留周期,以及

  2. 視圖控制器的主視圖的子視圖/控件,因為這些視圖已經被主視圖強烈持有。

原子方法和非原子方法是指編譯器為屬性合成的getter和setter方法的線程安全性。原子(默認)告訴編譯器使訪問器方法線程安全(在訪問Ival之前添加一個鎖),而非原子方法則相反。非原子的優點是性能稍高。在iOS上,蘋果公司幾乎所有的屬性都使用非原子技術,所以一般建議你也這樣做。


查看完整回答
反對 回復 2019-06-29
?
小怪獸愛吃肉

TA貢獻1852條經驗 獲得超1個贊

強壯:將傳入值分配給它,它將保留傳入值并釋放實例變量的現有值。

瘦弱將傳入的值分配給它而不保留它。

因此,基本的區別在于新變量的保留。一般說來,你想保留它,但在某些情況下,你不想要它,否則你會得到一個保留循環,無法釋放內存,對象。例如。obj 1保留obj 2,obj 2保留obj 1。要解決這種情況,需要使用弱引用。


查看完整回答
反對 回復 2019-06-29
  • 3 回答
  • 0 關注
  • 562 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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