objective c category類別的使用

2021-06-09 21:37:16 字數 1187 閱讀 4454

類別

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

//類別的作用:

//(1)將類別實現分散到多個不同檔案或多個不同框架中

//(2)建立私有方法的前向引用

//(3)向物件新增非正式協議

//類別的侷限性:

//(1)無法新增新的例項變數

//(2)名稱衝突,如果類別和現有的方法重名,類別具有更高的優先順序,解決辦法,類別方法名中新增乙個字首

什麼時候使用類別?

(1)類別只能新增新方法,無法新增新的例項變數(2)如果類別名和原來類中的方法產生名稱衝突,則類別將覆蓋原來的方法,因為類別具有更高的優先順序。

要注意的是objective-c只支援單繼承,如果要實現多繼承的話,可以通過類別和協議的方式來實現。

另外要特別注意的是,類別不能像繼承時那樣給類別介面增加新的例項變數,而是要擴充套件乙個類的行為。

類別的名稱是任意的。

@inte***ce nsstring (numberconvenience)

- (nsnumber *)lengthasnumber;

@end

(1)為nsstring類新增乙個名稱為numberconveniencede的類別;類別名稱具有

唯一性

,你可以向乙個類中新增

任意多

的類別。

(2)可以指定希望向其新增類別的類(nsstring),以及類別的名稱(numberconvenience),而且你還可以

列出新增的方法

,最後以@end結束;類別宣告部分

不能有例項變數部分

。@implementation nsstring (numberconvenience)

- (nsnmuber *)lengthasnumber{

unsigned int length = [self length];//獲得字串長度

return ([nsnumber numberwithunsignedint :length]);

}@end

自己在xcode 4.3.2中可以直接基於

類別的作用?

有時我們需要在乙個已經定義好的類中增加一些方法,而不想去重新寫該類。比如當 工程已經很大,量比較多,或者類中已經抱住很多方法,已經有其他 呼叫了該 類建立物件並使用該類的方法時,可以使用類別對該類的擴充新的方法。注意 類別只能擴充方法,而不能擴充成員變數。委託 舉例 委託 degegate 顧名思義...

類別的設計

1 先制定協定,再實作 2 優點 事前的規則使類別更完善 較佳的類別版本控制取向 使用起來較有彈性 3 使用介面制定協定 代表使用者端與伺服端之間的協定,不包含資料及任何實作的程式碼 程式碼易動時,使用介面,不需要改程式碼 不同的類別均支援相同的操作 使用介面輕易就可實作多型 使用ado.net的介...

資產類別的功能

用途 資產類別是結構化固定資產的最重要方法。可在系統中定義任意數量的資產類別。使用資產類別並根據企業要求來結構化資產。資產類別適用於所有公司 因此,資產類別目錄與客戶端中的所有公司 相關。當公司 具有不同的折舊表因而具有不同的折舊範圍時,情況也是如此。前提 在資產會計的定製中定義資產類別。選擇組織結...