Xcode 中對類進行Category

2021-07-08 19:54:41 字數 764 閱讀 4468

category   類別:

建立方式: 

選擇objective-c file,裡面filetype可以選擇empty file,category,protocol和extension 

category在ios開發中使用非常頻繁。尤其是在為系統類進行拓展的時候,我們可以不用繼承系統類,直接給系統類新增方法,最大程度的體現了objective-c的動態語言特性。

#import

@inte***ce nsobject (category)

- (void)mymethod;

@end

這是乙個最簡單的category,作用於nsobject類,給nsobject新增了乙個方法。

使用category需要注意的點:

(1) category的方法不一定非要在@implementation中實現,也可以在其他位置實現,但是當呼叫category的方法時,依據繼承樹沒有找到該方法的實現,程式則會崩潰。

(2) category理論上不能新增變數,但是可以使用@dynamic 來彌補這種不足。 (即執行時runtime)

#import

static const void * externvariablekey =&externvariablekey;

@implementation nsobject (category)

@dynamic variable;

- (id) variable

- (void)setvariable:(id) variable 

arcgis engine中對要素類進行空間查詢

假設有個要素類是所有的面,現在想查詢哪個面包含了特定的座標點.這樣可以用空間過濾器,進行空間查詢來做.根據要查詢的座標構造乙個點 ipoint targetpoint new pointclass targetpoint.putcoords x,y 構造空間過濾器 ispatialfilter sp...

根據類中的某個屬性對類進行排序

有時候,我們會有這樣的需求 通過制定的類中的元素,對多個例項物件進行排列顯示。那麼,今天我為大家寫了這樣乙個類,以便使用 話不多說,貼上原始碼 public class listsort tostring compareto m1.invoke e a new object tostring els...

如何對類中的private方法進行測試?

問題 如何對類中的private方法進行測試?大多數時候,private都是給public方法呼叫的,其實只要測試public即可。但是有時由於邏輯複雜等原因,乙個public方法可能包含了多個private方法,再加上各種if else,直接測public又要覆蓋其中每個private方法的n多情...