黑馬程式設計師 Object C 類別

2021-06-25 23:47:04 字數 2183 閱讀 8023

類別是一種為現有的類新增新方法的方法。

宣告類別

類別的宣告格式和類的宣告格式相似:

@inte***ce  nsstring (numberconvenice)  //類別的名稱是numberconvenience,該類別將向nsstring類中新增方法
-(nsstring *)lengthasnumber;
@end

宣告具有兩個特點:

現有的類位於@inte***ce關鍵字之後,其後面是位於圓括號中的乙個新名稱。

制定向其新增類別的類(示例中是nsstring)以及類別的名稱,而且還可以列出新增的方法,以@end結束。

注意:不能新增新的實現變數,因此與類的宣告不同的是,類別的宣告中沒有例項變數部分。

實現類別

與@inte***ce部分對應的還有乙個@implementation部分,可以在@implementation(意為:實現)部分實現自己的方法。

@implementation nsstring (numberconvenience )

-(nsnumber *)lengthasnumber

//lengthasnumber
@end //numberconvenience

與類別的@inte***ce 部分類似,@implementation 部分也包含類名、類別名以及新方法的正文部分。

類別的侷限性

類別有兩大侷限性:

類別的作用

類別主要用於3個目的:

如itunesfinder 委託的**。

#import h

@inte***ce  itunesfinder :nsobject

@end

//基本宣告
#import "itunesfinder.h "

@implementation itunesfinder
//委託方法
-(void)netservicebrowser :(nsnetservicebrowser *)b 

didfindservice: (nsnetservice *)service

morecoming:(bool )morecoming

//didfindservice

委託和類別

委託強調類別的另一種應用:被傳送給委託物件的方法可以宣告為乙個nsobject的類別。

響應選擇器

選擇器只有乙個方法名稱,但它以object-c執行時使用的特殊方法編碼,以迅速執行查詢。使用@selector 預編譯指令指定選擇器,其中方法名位於圓括號中。如:

@selector(setengine :)
如果該委託物件能夠響應給定的訊息,被委託物件能向物件傳送訊息;否則,被委託物件將忽略該委託物件,繼續正常執行。

選擇器的其他應用

選擇器可以被傳遞,可以作為方法的引數使用,甚至可以作為例項變數儲存。

黑馬程式設計師 Object C 物件的特性

特性 property 是object c 中組合了新的預編譯指令和新的屬性的訪問器語法。新的特性功能顯著減少了必須編寫的冗長 的數量。老 inte ce allweatherradial tirl void setrainhandling float rainhandling float rain...

黑馬程式設計師 Object C之迴圈引用

asp.net unity開發 net培訓 期待與您交流!關於迴圈引用的解決方法 兩端迴圈引用解決方案 1 一端用retain 2 一端用assign 首先定義兩個類 card person,其中card中又person的屬性,person中又card得屬性。1 card的宣告 class pers...

黑馬程式設計師 Object C基礎 九 記憶體管理

管理範圍 任何繼承了 nsobject 的物件,對其他基本資料型別 int char float double struct enum等 無效 只要你呼叫了retain,無論這個物件是如何生成的,你都要呼叫release void setbook book book void dealloc 使用場...