objective c基本知識

一、減號(加號)java

 在c++中咱們這樣定義一個函數c++

public void Test(bool flag)數組

{函數

  cout<<"hello world!!"<<endl;ui

}this

而在objective c中是:指針

-(void)Test:(bool)flag對象

{three

  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指針。

二、中括號

在c++中咱們調用函數通常是this.Test("hello world!!!");而在objective c中是[self Test:@"hello world!!!"];

三、NS**

對於這種命名方式,其實和歷史有關,就是neststep的意思,是當年喬布斯建立的公司。還能夠看到其餘一些打頭的類,好比CF,CA,CG,UI等,CF說的是Core Foundation,CA說的是Core Animation,CG說的是Core Graphics,UI說的是iPhone的User Interface……

四、#import

學過java的就知道,這就是導入的意思,其實就是等價c++中的#include。

五、@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{

  str1=@"hello world!!!";

  str2=@"l am coming!!";

}

-(void)printOut:{

  NSLog:(str1);

  NSLog:(str2);

}

@end

 

五、函數調用

  c++中調用Test myTest = new Test(),myTest .printOut("hello world!!!");而後再最後的delete對象。

在objective c中咱們是須要這樣[[[Test alloc] init:@"hello world"] aurorelease];

六、其餘

  1).在objective c中id是一個特殊的變量類型,其實就是能夠表示全部類型,當不知道變量類型的時候就可使用它,

  2).對於NSArray是一個能夠存放不一樣數據類型的數組,各類數據類型,如浮點、字符串、圖片等全部。

  3).objective c中的 YES等價於 TRUE,NO 等價於 FALSE。

  4).IBOutlet、IBAction這兩個東西其實在語法上沒有太大的做用,若是你但願在Interface Builder中能看到這個控件對象,那麼在定義的時候前面加上IBOutlet,在IB裏就能看到這個對象的outlet,若是你但願在Interface Builder裏控制某個對象執行某些動做,就在方法前面加上(IBAction)。

相關文章
相關標籤/搜索