當我們需要使用一個類別 Class 裡的參數與方法時,在 Objective-C 裡會使用 #import 前端處理程式,它不但可以讓程式知道被匯入的類別內的方法與參數,也可以確保該類別不會被重複引用。但是如果並不需要知道類別內的參數和方法,只是想要把該類別當作參數一樣的傳遞,那麼就可以考慮使用 @class 指令來增加效率。
使用 @class 指令時,編譯器並不需要處理整個 .h 標頭檔,只是宣告該物件為一個類別而已,所以無法調用其內部參數和具體方法。
這裡提供一個簡單的例子,製作一個 Furnace 類別,其宣告如下。
Furnace.h
@interface Furnace : NSObject {
int x, y;
}
@property int x;
@property int y;
- (void)printValues;
@end
接著,如果們在使用這個類別時不需要調用到其內部參數與方法,就可以使用 @class 指令來增加效率。
@class Furnace;
- (Furnace *)someMethod:(Furnace *)obj {
Furnace *_obj;
_obj = obj;
return _obj;
}
可以看到在上述程式碼中,並沒有使用到 Furnace 類別裡的方法或是參數,只是將整個類別當作參數一樣的傳遞。
沒有留言:
張貼留言