對象生成后只能調(diào)用一次初始化方法羡滑。
有的類也可以不通過alloc而通過使用別的方法來生成對象弹澎,有的類也可能返回一個初始化好的對象绞铃。
所有的OC編譯指令都是以@開頭,以便和c語言字符串區(qū)分囱嫩。
類名不能和變量名以及方法名相同恃疯。
方法的的返回值類型需要用()包住。
類的方法名和實(shí)例變量名可以相同墨闲。
類的實(shí)現(xiàn)部分不需要再次聲明父類(接口部分聲明的時候必須寫上父類)
在方法內(nèi)部如果定義的局部變量與實(shí)例變量相同今妄,實(shí)例變量就會被覆蓋,這時將無法訪問實(shí)例變量鸳碧。
方法中的self指的是實(shí)例對象自身盾鳞,是OC內(nèi)置的變量。self支持賦值等操作瞻离,也可以作為返回值被返回腾仅。使用self時一定要小心,要仔細(xì)分辨到底調(diào)用了哪個類的方法套利。
super并不確定指向某個對象推励,所以super只能被用于調(diào)用父類的方法鹤耍,不能通過super完成賦值,也不能把方法的返回值指定為super验辞。
程序的書寫風(fēng)格:
Objective-c也被稱為混合編程語言稿黄,在編程時既可以使用c語言的編程風(fēng)格,又可以使用面向?qū)ο蟮墓δ艿欤绦蛑忻嫦驅(qū)ο蟮牟糠诌€是使用面向?qū)ο蟮木幊田L(fēng)格為好抛猖。以下幾種情況建議使用c語言的函數(shù):
1.想使用成熟的c語言函數(shù)模塊時
2.想使用以c語言聲明的接口時,例如Unix的系統(tǒng)調(diào)用等
3.和面向?qū)ο鬀]有關(guān)系鼻听,用于數(shù)學(xué),計算等時
4.類定義時
5.對速度有較高要求時(如果將系統(tǒng)中那些需要被反復(fù)調(diào)用上萬甚至上百萬次的功能改成函數(shù)調(diào)用联四,速度就會快很多撑碴,而除此以外的絕大部分則都沒必要改成函數(shù)調(diào)用的形式)
//類的實(shí)現(xiàn)文件中定義的函數(shù)不可以直接使用類中定義的實(shí)例變量和self變量,但可以把這些作為參數(shù)傳遞給函數(shù)朝墩。
靜態(tài)變量的定義:
靜態(tài)變量的生命周期為從程序的執(zhí)行開始到結(jié)束醉拓,無論生成了多少個對象,都只有一個靜態(tài)變量存在收苏,也就是說多個對象會共享同一個靜態(tài)變量亿卤。
#import和#include的基本功能一樣,稍有不同的是#import不存在嵌套引用的問題鹿霸,因?yàn)镺C中#import內(nèi)置了判斷同一個文件是否已被引入的功能排吴。