Objective-C 分類Category

來源:互聯網
上載者:User

標籤:objective-c   分類   category   

OC提供了一種可以在不修改類的源碼基礎上,擴充類的方法的功能,"分類"Category,這個機制和C#中的擴充方法類似,一般用於在不方便修改類的源碼時(如OC系統相關的類庫),但有有需求要拓展類的方法,可以使用分類來實現。

Java中應該是沒有提供相關的機制,但是Java可以通過動態代理來實現AOP,在切入點前後執行代碼邏輯,個人認為比OC還要方便。

////  Girl.h//  10_Category////  Created by apple on 14/12/23.//  Copyright (c) 2014年 cc. All rights reserved.//#import <Foundation/Foundation.h>@interface Girl : NSObject//顯示MM的中文名- (NSString*)showEnglishName;@end////  Girl.m//  10_Category////  Created by apple on 14/12/23.//  Copyright (c) 2014年 cc. All rights reserved.//#import "Girl.h"@implementation Girl- (NSString*)showEnglishName {    return @"mm";}@end ////  Girl+GirlCategory.h//  10_Category////  Created by apple on 14/12/23.//  Copyright (c) 2014年 cc. All rights reserved.//#import "Girl.h"//OC分類的標頭檔//命名規範  基類+分類名.h/.m//格式 @interface 基類 (分類)//分類的作用:在不修改基類源檔案的基礎上,為基類動態擴充方法//通過分類Category可以在不修改OC或者IOS架構的源碼基礎上為這些類增加一些擴充方法//分類並非子類繼承的方式,而是直接對基類進行擴充@interface Girl (GirlCategory)//給Girl類增加一個顯示中文名字的方法- (NSString*)showChineseName;@end////  Girl+GirlCategory.m//  10_Category////  Created by apple on 14/12/23.//  Copyright (c) 2014年 cc. All rights reserved.//#import "Girl+GirlCategory.h"@implementation Girl (GirlCategory)- (NSString*)showChineseName {    return @"美眉";}@end////  main.m//  10_Category////  Created by apple on 14/12/23.//  Copyright (c) 2014年 cc. All rights reserved.//#import <Foundation/Foundation.h>#include "Girl.h"#include "Girl+GirlCategory.h"int main(int argc, const char * argv[]) {    @autoreleasepool {                Girl* pGirl = [[Girl alloc] init];        //Girl基類中定義的方法        NSLog(pGirl.showEnglishName);        //GirlCategory分類中擴充的方法        NSLog(pGirl.showChineseName);            }    return 0;}


Objective-C 分類Category

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.