程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> Objective-c中的分類

Objective-c中的分類

編輯:關於C語言

使用Object-C中的分類,是一種編譯時的手段,允許我們通過給一個類添加方法來擴充它(但是通過category不能添加新的實例變量),並且我們不需要訪問類中的代碼就可以做到,這點和javascript中使用原型來定義屬性有點類似。

我們可以為一個類創建一個新的方法,而不需要在代碼中編輯類定義。

下面就是定義並使用分類的例子程序,通過下面代碼,我們可以給Object-C中的NSString 添加camelCaseString分類,使用camelCaseString方法,就可以去掉一個字符串中的空格,並將原有空格後的單詞改寫成大寫(即將字符串轉化為駝峰式)。

#import <Foundation/Foundation.h>     
         
/*    
定義分類的過程大致可分為以下幾個步驟:    
    第一步、創建一個帶有接口的新文件,即創建已有類    
         
    第二步、在新文件中添加需要擴展的方法及方法的實現,即需要添加的分類    
 */ 
//NSString 表示將要添加分類的類名稱,該類必須是已存在的。     
//CamelCase 是為類添加的方法名稱。     
//只能添加方法,不能添加變量。     
//頭文件命名慣例:ClassName+CategoryName.h     
@interface NSString (CamelCase)     
         
-(NSString*) camelCaseString;     

@end     

@implementation NSString (CamelCase)     

-(NSString*) camelCaseString     
{     
    //調用NSString的內部方法獲取駝峰字符串。     
    //self指向被添加分類的類。     
    NSString *castr = [self capitalizedString];     
             
    //創建數組來過濾掉空格, 通過分隔符對字符進行組合。     
    NSArray *array = [castr componentsSeparatedByCharactersInSet:     
                      [NSCharacterSet whitespaceCharacterSet]];     

    //把數組的字符輸出     
    NSString *output = @"";     
    for(NSString *word in array)     
    {     
        output = [output stringByAppendingString:word];     
    }     
             
    return output;     
             
}     
         
@end     
int main (int argc, const char * argv[])     
{     
             
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];     
             
    NSString *str = @"My name is bill.";     
    NSLog(@"%@", str);     
    str = [str camelCaseString];     
    NSLog(@"%@", str);     
             
    [pool drain];     
    return 0;     
}

本文出自 “驿落黃昏” 博客,請務必保留此出處http://yiluohuanghun.blog.51cto.com/3407300/1153613

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved