類別是一種為現有的類新增新方法的方法。
宣告類別
類別的宣告格式和類的宣告格式相似:
@inte***ce nsstring (numberconvenice) //類別的名稱是numberconvenience,該類別將向nsstring類中新增方法
-(nsstring *)lengthasnumber;
@end
宣告具有兩個特點:
現有的類位於@inte***ce關鍵字之後,其後面是位於圓括號中的乙個新名稱。
制定向其新增類別的類(示例中是nsstring)以及類別的名稱,而且還可以列出新增的方法,以@end結束。
注意:不能新增新的實現變數,因此與類的宣告不同的是,類別的宣告中沒有例項變數部分。
實現類別
與@inte***ce部分對應的還有乙個@implementation部分,可以在@implementation(意為:實現)部分實現自己的方法。
與類別的@inte***ce 部分類似,@implementation 部分也包含類名、類別名以及新方法的正文部分。@implementation nsstring (numberconvenience )
-(nsnumber *)lengthasnumber
//lengthasnumber
@end //numberconvenience
類別的侷限性
類別有兩大侷限性:
類別的作用
類別主要用於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 使用場...