類别就是向類添加一些有用的功能或者方法 利于開發 類可以是系統類、可以是自定義類
類别跟子類是不一樣的,類别隻能添加一些方法 屬性變量什麼的不可以添加
不建立新類,即可對已有類進行擴充
做項目的時候 跟其他程式員會更好的合作
建立類别的圖放在最後面
我們為系統類NSArray添加一個列印方法 使得能輸出中文
界面如下

然後再NSArray+MyNSLog.h中聲明一個函數
#import <Foundation/Foundation.h>
@interface NSArray (MyNSLog)
- (NSString *)printChinese;
@end
然後再NSArray+MyNSLog.m中實作
#import "NSArray+MyNSLog.h"
@implementation NSArray (MyNSLog)
- (NSString *)printChinese{
NSMutableString * string = [[NSMutableString alloc] init];
[string appendString:@"{\n"];
//我們是位系統類NSArray添加一個能列印出中文的功能 即下面的self是指的我們要輸出的數組
//即就是要輸出中文的數組
for (int i = 0; i < self.count; i++) {
//字元串可以輸出中文
[string appendFormat:@"\t%@,\n",self[i]];
}
[string appendFormat:@"}"];
return string;
}
@end
在main.m中隻需引入類别的頭檔案即可 如果是自定義的類 也是隻需把類别的頭檔案進入即可
#import <Foundation/Foundation.h>
#import "NSArray+MyNSLog.h"
int main(int argc, const char * argv[])
{
@autoreleasepool {
NSArray * array = @[@"我是",@"蝸牛",@"Snail"];
//系統的輸出結果 中文已亂碼
/*
(
"\U6211\U662f",
"\U8717\U725b",
Snail
)
*/
NSLog(@"%@",array);
//當我們用添加的那個功能輸出時 中文可以輸出來
/*
{
我是,
蝸牛,
Snail,
}
*/
NSLog(@"%@",[array printChinese]);
}
return 0;
}
下面把建立類别的圖附上
首先,建立的适合選擇下面這個檔案
下一步,然後 在第一行 寫你自己定義的類别名稱 第二行 是你要為哪個類添加類别
然後下一步 儲存即可,就可以看到建立出來了一個類似類的兩個檔案