2014-05-11 47 views

回答

2

它們的名字是Categories,用於向類中添加函數和屬性。

假設您想用新方法擴展UIViewController類。 您創建一個類:

UIViewController+Utility.h/.m 

用一種新方法。

當您將該類導入到其他類中時,所有從UIViewController繼承的對象都將具有此方法,因此例如UITableViewController也會從該方法中受益。

您還可以插入屬性,但更復雜,因爲你必須輸入:

#import <objc/runtime.h> 

,並使用TE功能:

objc_setAssociatedObject 

objc_getAssociatedObject 
+0

是CATEGORY man .. :) –

+0

好吧,他們創建了另一個類thanx的類別。它的一個愚蠢的問題 – souvickcse

+0

你需要提出一個答案來結束這個問題。 – Fattie

2

沒有什麼特別之處實際上這些文件。該命名約定用於類別,即擴展現有類的代碼。

https://developer.apple.com/library/ios/documentation/cocoa/conceptual/ProgrammingWithObjectiveC/CustomizingExistingClasses/CustomizingExistingClasses.html

+0

但沒有util類別,如果我添加一個類別的文件名是categoryname + class name.h/.m – souvickcse

+1

在示例文件名+ util中,「filename」將是一些**現有類*和「util」沒有意義,這只是工程師用來說明這些類別是什麼的一個詞。例如,NSString +檢查,NSString +檢測,UIView +移動,UIView +度量等。 – Fattie

+0

是現在得到它。這是一個愚蠢的問題。缺少文件名部分。 – souvickcse

1

由於以前的答案說,ClassName+CustomName.h/m是一個類別。一個類別,它是一個特殊的objective-c類,允許您爲現有類添加額外的功能。

爲了使用它裏面的方法,你只需要將它導入到你想要使用它的類中。

也要小心一個類別它不是繼承另一個類的類,它是不同的,一個類別允許您爲該類(方法)添加額外的功能,就是這樣。您無法定義新的屬性或類成員,因爲您可以對繼承另一個類的類進行定義。

相關問題