宣告UI控制項屬性用strong來修飾

2021-09-11 03:48:25 字數 812 閱讀 4882

首先我們來建立乙個weak修飾的view.

@property (nonatomic, weak) uiview *ekview;
當我們在viewdidload裡面建立的時候:

警告資訊:將保留物件分配給弱屬性; 物件將在分配後釋放

分析:ekview並不會被新增到self.view上,因為ekview已經被釋放了, 不存在了.

weak修飾,引用計數並不會+1,所以為0,也就是被釋放了.

strong修飾,引用計數+1,所以不為0,就會存在.如果你用strong修飾了屬性,並且addsubview:了,雖然引用計數為2,但是當整個父檢視被銷毀的時候,它的引用計數就會為0,不會有問題.

這和ibout不一樣,這裡是沒有任何強引用來約束,建立之後就會被釋放, 而ibout,有subviews(copy強引用修飾的)屬性存在,已經進行了強引用(此時view對於subviews一定是強引用),引用計數可以保證不為0,不會變成nil,所以可以用weak修飾. 在這裡要想進行操作,可以建立乙個uiview *kkview = [[uiview alloc] init],此時kkview的引用計數是+1的,然後self.ekview = kkview, 然後再addsubview就可以了.

weak:檢視1存在,檢視2不一定存在。取決於檢視2是否有強引用。

strong:檢視1存在,檢視2就存在。因為strong會使引用計數+1.

UI控制項的常見屬性

獲得自己的父控制項物件 property nonatomic,readonly uiview superview 獲得自己的所有子控制項物件 property nonatomic,readonly,copy nsarray subviews 控制項的id 標識,父控制項可以通過tag來找到對應的子控...

UI技巧 批量修改控制項屬性

正好在幾天前,因為一點事情,重新看了一下分類的概念,然後就決定用類別的方式來解決這個問題。類別的作用 1.可以使本來需要在.h中宣告的方法放到.m檔案中宣告,使方法變為私有 2.可以擴充套件或覆蓋乙個類的功能,包括系統類,維護了 原本的結構不受影響。3.可以分散 到不同的檔案之中,比如系統類庫里有乙...

UI控制項簡介

1.image切割 九宮格切圖 只有中間的會縮放 2.raw image 遮罩 父物體改變子物體的形狀 3.slider 類似滾動條的形狀.滑動條 4.所有的東西都可以用image製作 5.格式 用slider可以控制音量 6.scrollbar 滑動塊 7.dropdown 下拉列表框 8.inp...