標籤:
一 oc基礎資料型別 (Elementary Data Type)
1,id類型指向object-c對象的指標
可以指向任意的物件類型,可以將任意訊息傳遞給id,id不支援該訊息時,會返回運行時異常,"unrecognized selector send to instance xxx"訊息;
常用於表示類的委託屬性,例:@property id<協議名> delegate;
2,SEL類型,用來定義方法的關鍵字
oc對象可以接受任何訊息,但不一定能響應,通過方法:respondsToSelector()來判斷對象是否能響應某個訊息,保護代碼,
- (BOOL)respondsToSelector:(SEL)aSelector; ->NSObject類
3,nil,NULL,NSNULL --空值
nil用於對對象賦值,NULL給任何指標賦值,NSNULL用於集合操作
nil對象可以接受訊息,返回0值,不引起異常
4.基本資料
整數類型 int 4位元組 , short 2byte , long 32位機4byte 64位機8位元 , long long 8位元組,
浮點型 單精確度float 4位元組 , 雙精確度double 8位元組
float a=6.7;
NSLog(@"%f",a); --->6.700000
NSLog(@"%.6f",a); ----> 6.700000
NSLog(@"%.10f",a); ----->6.6999998093
布爾類型 bool 1位元組
BOOL 4位元組
字元類型 char
枚舉類型
二 宏定義
#define 定義函數,數字,字串
靜態變數static int i=0;//局部靜態變數作用在方法體內,等同於全域變數
#pragma mark -用於分隔代碼塊
#pragma mark NETWORK API
三 記憶體管理
記憶體管理的原則:誰建立 誰釋放
1.手動記憶體管理MRR manual retain release
2.自動引用計數ARC Automatic Reference Counting
常見記憶體錯誤:1.記憶體泄露,對象沒有在使用結束釋放掉,造成常駐記憶體的現象;2.過度釋放,對象還沒有使用就被釋放了,提前釋放造成系統崩潰.
能讓引用計數增加的操作:
1.alloc new retain copy 使對象的引用計數+1;//需要程式員自己手動release釋放
2.採用類方法建立對象,會使引用計數+1,由系統方法內部建立,由系統自己釋放
3.父控制項載入子控制項時,[self addsubView:xxx]讓對象的引用計數+1
4.對屬性進行賦值時,會讓對象的引用計數+1;
5.向數組中添加對象,引用計數+1,刪除數組中的對象引用計數-1;
能讓引用計數減少的方法:
release autorelease 使對象的引用計數-1;
當引用計數為0時,自動調用對象類的dealloc方法,對象佔用的記憶體被收回
全域的對象在本類的dealloc方法中釋放
靜態方法建立的對象,聲明為全域後,對象會被系統自動釋放,需保留一次引用計數,否則在別的方法中再使用該對象時會崩潰
在方法體內建立的對象,可使用autorelease 加入自動釋放池,在一定時期後釋放
object-c基礎學習 基於<iOS軟體開發揭秘>