国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Objective-C知識總結(4)

2019-11-14 18:37:20
字體:
來源:轉載
供稿:網友

ARC(automatic reference counting)機制

判斷是否是ARC機制

  • ARC機制中不能使用retain release autorelease retainCount
  • 在dealloc方法中不能使用 [super dealloc];

在ARC下對象釋放的判斷依據: 對象沒有強指針指向

指針默認的都是強指針,比如我們創建的對象都是默認的強指針

Person *p1 = [[Person alloc] init];

__strong 修飾符,修飾這個指針是一個強指針,也可以不寫

__weak   修飾的這個指針是弱指針

ARC下的循環引用問題

當兩個對象互相擁有的時候,如果定義的時候都用strong,那么就會導致循環引用的問題,雙方互相強指針指向,不能被釋放

解決這個問題的方法是:將其中一個以weak定義,就能完美解決這個問題了

ARC下set方法內存@PRoperty參數

ARC中的@property

strong:用于OC對象,相當于MRC中的retain

weak:用于OC對象,相當于MRC中的assign(代理一般用weak,UI控件一般用weak)

assign:用于基本數據類型,跟MRC中的assign一樣

copy:一般用于NSString,跟MRC中的copy一樣

ARC注意:

__weak Person *p=[[Person alloc] init];// 不合理,對象一創建出來就被釋放掉,對象釋 放掉后,ARC把指針設置為nil。 

如何讓ARC的項目兼容非ARC的類

讓程序兼容ARC和非ARC部分

  • 轉變為非ARC -fno-objc-arc
  • 轉變為ARC的, -f-objc-arc 

在哪里添加編譯器標示 -fno-objc-arc如下圖

將MRC轉化為ARC(不建議這么使用,若要嘗試做好備份)

分類(Category)

分類的使用注意事項:

--------->在分類的聲明中不能聲明實例變量

--------->不能定義實例變量 也不能使用 @property

--------->在分類的方法中,可以訪問類中的實例變量

--------->在分類中存在和類同名的方法  優先訪問的時 分類中 的方法

當在多個類別中有同名的方法的時候,這時候,執行的最后編譯的那個類別的同名方法

分類的 > 原類

最后編譯的分類 >  其他的分類

分類(Category)非正式協議

非正式協議就是給NSObject類或Foundation框架中的子類創建的類目(分類),即給它們添加方法,叫做非正式協議

類的延展的概念

延展類別又稱為擴展(Extendsion)

Extension是Category的一個特例 其名字為匿名(為空),并且新添加的方法一定要予以實現。(Category沒有這個限制)

// 這個一般用在.m文件中,作為私有的方法和成員變量@interface Student (){   // 可以添加成員變量}// 添加方法@end 

 

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 区。| 历史| 沈阳市| 曲沃县| 黑河市| 平山县| 轮台县| 荆州市| 武威市| 天全县| 石嘴山市| 仙居县| 溆浦县| 峨眉山市| 若尔盖县| 长岛县| 浦东新区| 南陵县| 大港区| 卓尼县| 玛曲县| 盐城市| 海晏县| 承德市| 民县| 巴马| 河曲县| 鄱阳县| 保靖县| 堆龙德庆县| 清苑县| 湖南省| 千阳县| 甘孜| 工布江达县| 延长县| 塔河县| 木里| 广汉市| 昌都县| 侯马市|