Objective-C語法學習 初學者必備文檔
Objective-C語法學習是本文要介紹的內容,主要介紹了變量、方法、對象等一些內容。我們一起來看詳細內容。
變量定義
interface 文件(*.h)中定義,定義要放在 interface 名稱后的括號內
對象的定義要用指針[NSButton *aButton;],使用正常名稱
普通變量正常定義使用
方法定義
interface 文件(*.h)中定義,定義放在括號外且 @end 標記前
以符號([-]表對象方法,[+]表靜態(tài)方法)開頭,其次以括號括起來的返回值類型,然后是方法名稱,以冒號開始參數的加入,參數按正常定義格式,但要把類型以括號括起來,***個參數以后的參數要加標志符,以分號結束[-(void)testFunction:(NSString *)aString secondPara:(int)aInt;]
方法名以小寫字母開頭
方法的實現
implementation 文件(*.m)中定義,文件中先以 import 關健字引入 interface 文件[#import "MyClass.h"],方法定義在 @implementation和@end關鍵字之間定義方法,跟定義在interface中對方法的定義類似,但方法的實現在大括號之間
方法的參數是方法的一部分,如果參數是指針則在使用時要重新分配內存,用后要釋放內存,如果是普通變量則正常使用,如:
- -(void)setName:(NSString *)tmpName{
- [tmpName retain];
- [tmpName release];
- tmpName = name;
- }
釋放內存操作放在對tmpName的調用之后,調用一個釋放的方法。
初始化類的對象可以在方法[-(id)init{}]中實現。
方法及變量的使用
實例化一個對象:先分配內存并創(chuàng)建類
- {MyClass *anInstance=[MyClass alloc;]}
然后初始化對象:{[anInstance init]}(調用了實例的init方法),則一般實例化為:
- {MyClass *anInstance =[[MyClass alloc] init];}
以中括號來調用{[object message]},以分號結尾
參數在對象操作后加入{[object method:para1 labelPara2:para2]},方法可做嵌套,在要使用的地方以同樣的方式調用即可
調用同一個類中的其它方法,對象名用 self
使用實例直接調用對象的變量是可以的,但***通過方法訪問變量
返回值可以正常使用
當然用alloc創(chuàng)建了實例,也要釋放:
- {[anInstance release];}
內存自動釋放方式
以 stringWithSting 代替 alloc ,可以使系統自動釋放內存
創(chuàng)建對象:
- +(id)stringWithString:(NSString *)aString;
- *aString =[NSString stringWithString:@"Hello,World!"]
實例化對象時設置自動回收:
- {MyClass *anInstance=[[[MyClass alloc] init] autorelease];}
一般的語言使用關鍵字class來定義類,而objective-c是使用關鍵字@interface加上@end來聲明,用關鍵字@implementation加上@end來定義類。其二,用類的對象來調用該類的方法時,一般的高級語言都是用對象名加上符號‘.’來調用,但是objective-c是用中括號把對象名和所調用的方法名括起來調用。
(1)Objective-C的編譯器處理后綴為m的文件時,可以識別Objective-C和c的代碼,處理mm文件可以識別Objective-C,c,c++代碼,但cpp文件必須只能用c/c++代碼,而且cpp文件include的頭文件中,
也不能出現Objective-C的代碼,因為cpp只是cpp
(2)在mm文件中混用cpp直接使用即可,所以Objective-C混cpp不是問題
(3)在cpp中混用Objective-C其實就是使用Objective-C編寫的模塊是我們想要的。
如果模塊以類實現,那么要按照cpp class的標準寫類的定義,頭文件中不能出現Objective-C的東西,包括#import cocoa的。實現文件中,即類的實現代碼中可以使用Objective-C的東西,
可以import,只是后綴是mm。如果模塊以函數實現,那么頭文件要按c的格式聲明函數,實現文件中,c++函數內部可以用Objective-C,但后綴還是mm或m。
總結:只要cpp文件和cpp include的文件中不包含Objective-C的東西就可以用了,cpp混用Objective-C的關鍵是使用接口,而不能直接使用實現代碼,實際上cpp混用的是Objective-C編譯后的o文件,
這個東西其實是無差別的,所以可以用。而Objective-C混用cpp就簡單了,直接用就可以,因為Objective-C的編譯器支持啊
小結:Objective-C語法學習 初學者必備文檔的內容介紹完了,希望本文對你有所幫助!