標籤:java 使用 檔案 資料 io cti ar c++
1、減號(加號)
在c++中我們這樣定義一個函數
public void Test(bool flag)
{
cout<<"hello world!!"<<endl;
}
而在objective c中是:
-(void)Test:(bool)flag
{
NSLog(@"hello world!!");
}
其中“-”表示一個函數、或者訊息的開始,其實就是方法,其實還是比較容易看懂的,(-)(函數傳回型別)函數名:(參數類型)參數名,其中如果是多個參數時會稍稍有些不一樣,其形式如下:
(-)(函數傳回型別)函數名:(參數類型)參數名 secondPara:(參數類型)參數名 threedPara:(參數類型)參數名....
而對於c++而言,則是 public void Test( string str1,string str2,string str3);調用的時候一般都是this.Test("hello"," world","!!!!");
對於objective c而言,調用則會有些繁瑣,即[self Test:@"hello" secondPara:@"world" threedPara:@"!!!!"];
其中在執行個體和函數之間的空格表示調用的關係了,而後面則是參數了其中每個參數之間用空格隔開,這和定義的形式是一樣的,其中secondPara、threedPara可以更改,只要在調用的時候一樣就可以了。注self就是等價this指標。
2、中括弧
在c++中我們調用函數一般是this.Test("hello world!!!");而在objective c中是[self Test:@"hello world!!!"];
3、NS**
對於這種命名方式,其實和曆史有關,就是neststep的意思,是當年喬布斯建立的公司。還可以看到其他一些打頭的類,比如CF,CA,CG,UI等,CF說的是Core Foundation,CA說的是Core Animation,CG說的是Core Graphics,UI說的是iPhone的User Interface……
4、#import
學過java的就知道,這就是匯入的意思,其實就是等價c++中的#include。
5、@interface等
c++中我們定義個類:
public class Test:public Object
{
string m_str;
int m_count;
void printOut(int count=0)
{
if(count = 0)
m_count = count;
sprintf(m_str,"this %d coming in",m_count);
cout<<"m_str"<<endl;
}
}
objective c的定義如下:
Test.h檔案定義
@interface Test:NSObject{
NSString str1;
NSString str2;
}
-(void)printOut;
@end
Test.m檔案如下
#import "Test.h"
@implementation Test
-(void)init{
[email protected]"hello world!!!";
[email protected]"l am coming!!";
}
-(void)printOut:{
NSLog:(str1);
NSLog:(str2);
}
@end
5、函數調用
c++中調用Test myTest = new Test(),myTest .printOut("hello world!!!");然後再最後的delete對象。
在objective c中我們是需要這樣[[[Test alloc] init:@"hello world"] aurorelease];
6、其他
1).在objective c中id是一個特殊的變數類型,其實就是可以表示所有類型,當不知道變數類型的時候就可以使用它,
2).對於NSArray是一個可以存放不同資料類型的數組,各種資料類型,如浮點、字串、圖片等所有。
3).objective c中的 YES等價於 TRUE,NO 等價於 FALSE。
4).IBOutlet、IBAction這兩個東西其實在文法上沒有太大的作用,如果你希望在Interface Builder中能看到這個控制項對象,那麼在定義的時候前面加上IBOutlet,在IB裡就能看到這個對象的outlet,如果你希望在Interface Builder裡控制某個對象執行某些動作,就在方法前面加上(IBAction)。