xib上的控制項屬性為什麼要使用weak

2022-05-12 12:54:11 字數 618 閱讀 2878

常規中,從xib拖出乙個控制項時,系統會自動生成一段**,如下:

從這個中,可以看到控制項的屬性都是用的weak,這是為什麼呢?

首先,如果把weak修改成strong其實也是可以的,但是會出現乙個問題,如果把這個控制項 removefromsuperview後,控制項雖然看不見了,但是系統還是會有這個控制項的記憶體,就造成了資源的浪費。

其次,為何用weak後,不會被釋放掉呢?其原理如下:

(1)viewcontroller中有乙個強引用的view,如下:

(2)view中有個強引用的陣列的subviews,如下:

(3)當xib新增乙個控制項時,會把控制項以強引用的方式加入到subviews中;

(4)所以,從xib新增乙個控制項的屬性時,用weak 也不會釋放掉,因為有其他的地方強引用這個控制項。

為什麼要使用blog

有哥們問我,你為什麼使用blog?我總結了一下,覺得有如下幾個原因。1對自己的督促 有了blog,就會經常記得寫點東西 就會經常翻翻網上的新文章,了解一下新技術,不至於迷失在忙碌的生活中 如果把自己的所感所想所學寫出了,自己對自己也會有個概念,不至於迷迷糊糊 還有,畢竟是掛在網上的文字,心中難免擔心...

為什麼要使用XML

xml 代表擴充套件標記語言 extensible markup language 是由 world wide web consortium w 3c 的 xml工作組定義的。這個工作組是這樣描述該語言的 擴充套件標記語言 xml 是 sgml 的子集,其目標是允許普通的 sgml 在web 上以目...

為什麼要使用Nginx?

有人說這些基準測試是不準確的,因為在這樣那樣的環境下,做的比較不一致。我傾向同意基準測試只是告訴了我們其中一部分情況,你能做的是消除偏見 有人見過所有人都同意乙個基準測試是公平的嗎?我是沒見過。我們投資的一些公司把web平台切換到nginx後,可以顯著的解決擴充套件問題。nginx明顯有效的實現了今...