iOS開發幾年了,你清楚OC中的這些東西麼

2021-07-22 04:58:03 字數 1404 閱讀 1516

zeroj 前言

oc中的物件的建立: 首先會通過 +(id)alloc 動態的分配所有的變數以及父類定義的變數所需要的足夠記憶體, 同時會清除所有的分配的記憶體空間, 全部置為0

同時接著需要呼叫class的 -(id)init 方法, 這個方法給每個變數設定初始值

返回的型別為id, id是乙個可以指向任意型別的指標(不用 * 號), 這個在一定程度上可以完成多型的效果

對oc中的class檔案的理解: class, extension, category

zjperson.h檔案

zjperson.m檔案

zjperson.m檔案

[[xxobject alloc] init] 初始化方法不需要引數的時候, 和 [xxobject new] 方法相同

通過字面量來初始化物件, 例如

objective-c

12

3

4

5

nsstring

*string

=@"string";==

[[nsstring

alloc

]initwithstring

:@"string"

];等初始化方法

nsnumber

*mybool=@

yes;==[

[nsnumber

alloc

]initwithbool

:yes];

nsnumber

*myfloat=@

3.14f;==

nsnumber

*myint=@

42;==

nsnumber

*mylong=@

42l;==.

..oc(c)中多行巨集的定義(這個在swift…中更方便直接乙個全域性的函式就搞定了): 在除了最後一行的每一行結尾加一條反斜槓 \

比較是否相同: 使用 if(a==b) {}, 如果a,b是物件型別, 那麼比較的是指標是否相同, 而不是比較值是否相同, 如果a, b是基本型別(int, double…), 那麼比較的是值是否相同; 使用if ([a isequal: b]) , 則比較的是a,b的值是否相同

初始化基本型別的時候盡量設定初始值, 因為編譯器分配的初始值並不確定, 但是物件型別會預設初始化為nil

條件判斷: 當物件不為nil(有記憶體位址)的時候, 或者基本型別非0, 或者bool型別為true, 這個時候條件都為真, 其他情況條件為假

oc中屬性的getter和setter

@property (nonatomic) nsstring *name;

iOS開發幾年了,你清楚OC中的這些東西麼1

前言 1.oc中的物件的建立 首先會通過 id alloc 動態的分配所有的變數以及父類定義的變數所需要的足夠記憶體,同時會清除所有的分配的記憶體空間,全部置為0 2.同時接著需要呼叫class的 id init 方法,這個方法給每個變數設定初始值 3.返回的型別為id,id是乙個可以指向任意型別的...

iOS開發 在Swift中呼叫oc庫

先列舉這個工程中用到的oc原始碼庫 注意標頭檔案名字的命名規範 專案名稱 brdging header.h,如下圖。匯入成功後,接下來測試如何引用,下面以及呼叫mjrefresh庫為例,只要uirefreshcontrol宣告變數能編譯能通過,就說明能正常呼叫,具體使用方法參見mjrefresh的相...

ios開發 OC記憶體管理的學習

今天我學習了oc中重點的內容,記憶體管理,由於內容較多,需要慢慢消化,下面是具體學習內容 記憶體管理的學習 1.基本實現方法 1 retain 計數器 1,會返回物件本身 2 release 計數器 1,沒有返回值 3 retaincount 獲取當前的計數器 4 dealloc 當乙個物件要被 的...