偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Objective-C語(yǔ)法學(xué)習(xí) 初學(xué)者必備文檔

移動(dòng)開(kāi)發(fā) iOS
本文介紹的是Objective-C語(yǔ)法的學(xué)習(xí),是和初學(xué)者作為參考資料的文檔,我們來(lái)看詳細(xì)內(nèi)容。

Objective-C語(yǔ)法學(xué)習(xí)是本文要介紹的內(nèi)容,主要介紹了變量、方法對(duì)象等一些內(nèi)容。我們一起來(lái)看詳細(xì)內(nèi)容。

變量定義

interface 文件(*.h)中定義,定義要放在 interface 名稱(chēng)后的括號(hào)內(nèi)

對(duì)象的定義要用指針[NSButton *aButton;],使用正常名稱(chēng)

普通變量正常定義使用

方法定義

interface 文件(*.h)中定義,定義放在括號(hào)外且 @end 標(biāo)記前

以符號(hào)([-]表對(duì)象方法,[+]表靜態(tài)方法)開(kāi)頭,其次以括號(hào)括起來(lái)的返回值類(lèi)型,然后是方法名稱(chēng),以冒號(hào)開(kāi)始參數(shù)的加入,參數(shù)按正常定義格式,但要把類(lèi)型以括號(hào)括起來(lái),***個(gè)參數(shù)以后的參數(shù)要加標(biāo)志符,以分號(hào)結(jié)束[-(void)testFunction:(NSString *)aString secondPara:(int)aInt;]

方法名以小寫(xiě)字母開(kāi)頭

方法的實(shí)現(xiàn)

implementation 文件(*.m)中定義,文件中先以 import 關(guān)健字引入 interface 文件[#import "MyClass.h"],方法定義在    @implementation和@end關(guān)鍵字之間定義方法,跟定義在interface中對(duì)方法的定義類(lèi)似,但方法的實(shí)現(xiàn)在大括號(hào)之間

方法的參數(shù)是方法的一部分,如果參數(shù)是指針則在使用時(shí)要重新分配內(nèi)存,用后要釋放內(nèi)存,如果是普通變量則正常使用,如:

  1. -(void)setName:(NSString *)tmpName{  
  2.     [tmpName retain];  
  3.     [tmpName release];  
  4.     tmpName = name;  

釋放內(nèi)存操作放在對(duì)tmpName的調(diào)用之后,調(diào)用一個(gè)釋放的方法。

初始化類(lèi)的對(duì)象可以在方法[-(id)init{}]中實(shí)現(xiàn)。

方法及變量的使用

實(shí)例化一個(gè)對(duì)象:先分配內(nèi)存并創(chuàng)建類(lèi)

  1. {MyClass *anInstance=[MyClass alloc;]} 

然后初始化對(duì)象:{[anInstance init]}(調(diào)用了實(shí)例的init方法),則一般實(shí)例化為:

  1. {MyClass *anInstance =[[MyClass alloc] init];} 

以中括號(hào)來(lái)調(diào)用{[object message]},以分號(hào)結(jié)尾

參數(shù)在對(duì)象操作后加入{[object method:para1 labelPara2:para2]},方法可做嵌套,在要使用的地方以同樣的方式調(diào)用即可

調(diào)用同一個(gè)類(lèi)中的其它方法,對(duì)象名用 self

使用實(shí)例直接調(diào)用對(duì)象的變量是可以的,但***通過(guò)方法訪問(wèn)變量

返回值可以正常使用

當(dāng)然用alloc創(chuàng)建了實(shí)例,也要釋放:

  1. {[anInstance release];} 

內(nèi)存自動(dòng)釋放方式

以 stringWithSting 代替 alloc ,可以使系統(tǒng)自動(dòng)釋放內(nèi)存

創(chuàng)建對(duì)象:

  1. +(id)stringWithString:(NSString *)aString;  
  2. *aString =[NSString stringWithString:@"Hello,World!"] 

實(shí)例化對(duì)象時(shí)設(shè)置自動(dòng)回收:

  1. {MyClass *anInstance=[[[MyClass alloc] init] autorelease];} 

一般的語(yǔ)言使用關(guān)鍵字class來(lái)定義類(lèi),而objective-c是使用關(guān)鍵字@interface加上@end來(lái)聲明,用關(guān)鍵字@implementation加上@end來(lái)定義類(lèi)。其二,用類(lèi)的對(duì)象來(lái)調(diào)用該類(lèi)的方法時(shí),一般的高級(jí)語(yǔ)言都是用對(duì)象名加上符號(hào)‘.’來(lái)調(diào)用,但是objective-c是用中括號(hào)把對(duì)象名和所調(diào)用的方法名括起來(lái)調(diào)用。

(1)Objective-C的編譯器處理后綴為m的文件時(shí),可以識(shí)別Objective-C和c的代碼,處理mm文件可以識(shí)別Objective-C,c,c++代碼,但cpp文件必須只能用c/c++代碼,而且cpp文件include的頭文件中,
也不能出現(xiàn)Objective-C的代碼,因?yàn)閏pp只是cpp

(2)在mm文件中混用cpp直接使用即可,所以O(shè)bjective-C混cpp不是問(wèn)題

(3)在cpp中混用Objective-C其實(shí)就是使用Objective-C編寫(xiě)的模塊是我們想要的。

如果模塊以類(lèi)實(shí)現(xiàn),那么要按照cpp class的標(biāo)準(zhǔn)寫(xiě)類(lèi)的定義,頭文件中不能出現(xiàn)Objective-C的東西,包括#import cocoa的。實(shí)現(xiàn)文件中,即類(lèi)的實(shí)現(xiàn)代碼中可以使用Objective-C的東西,
可以import,只是后綴是mm。如果模塊以函數(shù)實(shí)現(xiàn),那么頭文件要按c的格式聲明函數(shù),實(shí)現(xiàn)文件中,c++函數(shù)內(nèi)部可以用Objective-C,但后綴還是mm或m。

總結(jié):只要cpp文件和cpp include的文件中不包含Objective-C的東西就可以用了,cpp混用Objective-C的關(guān)鍵是使用接口,而不能直接使用實(shí)現(xiàn)代碼,實(shí)際上cpp混用的是Objective-C編譯后的o文件,
這個(gè)東西其實(shí)是無(wú)差別的,所以可以用。而Objective-C混用cpp就簡(jiǎn)單了,直接用就可以,因?yàn)?strong>Objective-C的編譯器支持啊

小結(jié):Objective-C語(yǔ)法學(xué)習(xí) 初學(xué)者必備文檔的內(nèi)容介紹完了,希望本文對(duì)你有所幫助!

責(zé)任編輯:zhaolei 來(lái)源: 互聯(lián)網(wǎng)
相關(guān)推薦

2011-08-12 10:27:52

Objective-C對(duì)象

2011-08-17 12:03:36

Objective-C

2011-08-10 19:16:50

Objective-C變量類(lèi)

2011-08-10 19:01:18

Objective-C

2011-08-18 15:19:28

XcodeObjective-C語(yǔ)法

2011-08-29 15:45:59

Lua函數(shù)

2011-08-23 14:01:03

LUA

2011-08-01 11:49:05

Objective-C

2009-09-10 13:54:27

LINQ語(yǔ)法

2011-08-24 17:19:20

Lua源文件

2011-08-11 10:50:08

xcode調(diào)試文件

2011-08-24 09:54:05

Lua字符春交互

2015-07-07 10:43:59

Swift語(yǔ)法基礎(chǔ)

2015-07-07 10:58:29

Swift語(yǔ)法高級(jí)

2011-08-15 17:06:01

Objective-CNSLog

2014-04-30 10:16:04

Objective-CiOS語(yǔ)法

2011-05-11 13:54:08

Objective-C

2011-08-02 13:16:36

Objective-C 語(yǔ)法 函數(shù)

2020-09-08 19:03:41

Java代碼初學(xué)者

2020-08-16 13:10:46

TensorFlow深度學(xué)習(xí)數(shù)據(jù)集
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)