objective-c中可以用类别(category)来为现有的类进行添加新的方法。
例:
#import <Foundation/Foundation.h>
@interface NSNumber (APPLE)
-(NSNumber*) add:(double) num;
-(NSNumber*) substract:(double) num;
-(NSNumber*) multiply:(double) num;
-(NSNumber*) divide:(double) num;
@end
#import "NSNumber+APPLE.h"
@implementation NSNumber (APPLE)
-(NSNumber*) add:(double)num
{
return [NSNumber numberWithDouble:(self.doubleValue + num)];
}
-(NSNumber*) substract:(double)num
{
return [NSNumber numberWithDouble:(self.doubleValue - num)];
}
-(NSNumber*) multiply:(double)num
{
return [NSNumber numberWithDouble:([self doubleValue]*num)];
}
-(NSNumber*) divide:(double)num
{
return [NSNumber numberWithDouble:([self doubleValue]/num)];
}
@end
int main(int argc,char* argv[])
{
@autoreleasepool{
NSNumber* n = [NSNumber numberWithDouble:3.1];
//直接输出NSnumber对象
NSLog(@"n is %@",n);
NSLog(@"n add 2 result is %@",[n add:2]);
NSLog(@"n substract 2 result is %@",[n substract:2]);
NSLog(@"n multiply 2 result is %@",[n multiply:2]);
NSLog(@"n divide 2 result is %@",[n divide:2]);
}
}
本文详细介绍了Objective-C中如何通过类别(category)为现有类添加新方法,包括实例方法的实现与调用,并提供了示例代码帮助开发者更好地理解和应用这一特性。
722

被折叠的 条评论
为什么被折叠?



