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 當乙個物件要被 的...