關於 iOS 分類(Category)的實現代碼

來源:互聯網
上載者:User

標籤:

其實質是對一個類的擴充,對類擴充的方法有兩種:

(1)通過繼承(經常用到)

(2)通過分類

一個已知類Name

其標頭檔Name.h

 

#import <Foundation/Foundation.h>

@interface Name : NSObject

@property(strong,nonatomic)NSString* nameStr;

-(Name *)init:(NSString*)nameString;

-(void)nameValue;

 

 

@end

  其實現檔案 Name.m 

#import "Name.h"

 

@implementation Name

 

-(Name *)init:(NSString*)nameString

{

    Name * name = [Name new];

    name.nameStr = nameString;

    return name;

}

-(void)nameValue

{

    NSLog(@"----%@--",self.nameStr);

}

@end

 

再建立一個標頭檔Name+change.h用來聲明其所要擴充的方法

源碼:

 

#import "Name.h"

@interface Name(change)

 

-(void)addNameID:(NSString *)str;

 

 

@end

 

再建立一個實現檔案Name+change.m用來實現自己擴充的方法

 

#import <Foundation/Foundation.h>

#import "Name+change.h"

#import "Name.h"

@implementation Name (change)

-(void)addNameID:(NSString *)str

{

    NSLog(@"---%@--%@--",self.nameStr,str);

}

 

 

@end

 

其測試檔案選擇命令列

main.m

#import <Foundation/Foundation.h>

#import "Name+change.h"

int main(int argc, const char * argv[]) {

    @autoreleasepool {

 

        Name * name1 = [[Name alloc] init:@"wangfei"];

        

        [name1 nameValue];

        [name1 addNameID:@"898989"];

    }

    return 0;

 

}

 

其測試結果:

2015-07-11 16:34:53.051 Category[1462:60100] ----wangfei--

2015-07-11 16:34:53.053 Category[1462:60100] ---wangfei--898989--

 

Program ended with exit code: 0

 

 

關於 iOS 分類(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.