objective c基本知識

來源:互聯網
上載者:User

標籤: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)。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.