Obj-C中的類別(category)


/*
    類別(category)   // 爲現有類添加新方法
    
    //聲明一個類別
    @interface NSString (NumberConvenience) //類別名稱是NumberConvenience,能夠向NSString類中添加方法
    -(NSNumber *) lengthAsNumeber;
    @end
    
    @implementation NSString (NumberConvenience)
    -(NSString*) lengthAsNumber
    {
        unsigned int length = [self length];
        return ([NSString numberWithSignedInt:length]);
    }
     */
   // @end
    //侷限性
    //1. 沒法向類中添加新的實例變量,類別沒有位置容納變量
    //2. 名稱衝突時(類別中的方法與現有的方法重名),類別具備更高的優先級。類別方法將徹底取代初始方法,初始方法再也不可用。
    
    //委託是一種對象,另外一個類的對象會要求委託對象執行它的某些操做
    // 例如:當AppKit類的NSApplication啓動時,它會詢問其委託對象是否應該打開一個無標題窗口
    //      NSWindow類的對象詢問它們本身的委託對象是否應該容許關閉某個窗口
    // 還能夠編寫委託對象並將其提供給其餘一些對象,一般是提供給Cocoa生成的對象。經過實現特定的方法,你能夠控制Cocoa中對象的行爲
相關文章
相關標籤/搜索