objective-c category

在java中想让类   “具有新的功能”  通常采用继承来实现 ,oc中可以使用类别(category)为已有的类添加新的方法,注意是为任何已有类(包括系统提供的NSObject  , NSString 等等),类别不是继承,更像是直接修改了源码

例如:

#import <Foundation/Foundation.h>






//  为NSString新增方法,()中任意合法标示符即可
@interface NSString (Young)

    -(void)newMethod:(int)val;//声明新增的方法

@end
//实现时同样声明NSString(Young)
@implementation NSString(Young)

-(void)newMethod:(int )val{
    
   NSString* s= @"新增方法 ";
   s= [s stringByAppendingFormat:@"%@ %d",self,val];
    NSLog(s);
}

@end
int main(int argc, const char * argv[]) {
    @autoreleasepool {
        
        NSString* s1= [[NSString alloc]initWithUTF8String:"new string"];
        [s1 newMethod:1];
        
        NSString* s2=@"string  pool";
        
        [s2 newMethod:2];
        
        
        
        
        
    }
    return 0;
}

打印如下

2015-09-20 11:06:54.437 testt[579:22088] 新增方法 new string 1
2015-09-20 11:06:54.438 testt[579:22088] 新增方法 string  pool 2


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值