类别
#import <Foundation/Foundation.h>
@interface NSNumber (Calculate)
-(NSNumber*)add:(double)num2;
-(NSNumber*)substract:(double)num2;
-(NSNumber*)multiply:(double)num2;
-(NSNumber*)divide:(double)num2;
@end
#import "NSNumber+Calculate.h"
@implementation NSNumber (Calculate)
-(NSNumber*)add:(double)num2{
return [NSNumber numberWithDouble:self.doubleValue+num2];
}
-(NSNumber*)substract:(double)num2{
return [NSNumber numberWithDouble:self.doubleValue-num2];
}
-(NSNumber*)multiply:(double)num2{
return [NSNumber numberWithDouble:self.doubleValue*num2];
}
-(NSNumber*)divide:(double)num2{
return [NSNumber numberWithDouble:self.doubleValue/num2];
}
@end
#import <Foundation/Foundation.h>
#import "NSNumber+Calculate.h"
//通过类别来调用私有方法
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSNumber *myNum = [NSNumber numberWithInt:3];
NSLog(@"add=%@",[myNum add:5]);
NSLog(@"substract=%@",[myNum substract:5]);
NSLog(@"multiply=%@",[myNum multiply:5]);
NSLog(@"divide=%@",[myNum divide:5]);
}
return 0;
}
#import <Foundation/Foundation.h>
@interface Item : NSObject
@end
#import "Item.h"
@implementation Item
//私用方法
-(void)print{
NSLog(@"打印了内容");
}
@end
#import <Foundation/Foundation.h>
#import "Item.h"
//通过类别来调用私有方法
@interface Item(aa)
-(void)print;
@end
int main(int argc, const char * argv[]) {
@autoreleasepool {
Item*item = [[Item alloc]init];
[item print];
}
return 0;
}
#import <Foundation/Foundation.h>
@interface NSObject (Eatable)
-(void)taste;
@end
#import "NSObject+Eatable.h"
@implementation NSObject (Eatable)
-(void)taste{
NSLog(@"类别里面的");
}
@end
#import <Foundation/Foundation.h>
#import "NSObject+Eatable.h"
@interface Apple : NSObject
@end
#import "Apple.h"
@implementation Apple
-(void)taste{
NSLog(@"苹果好吃");
}
@end
#import <Foundation/Foundation.h>
#import "Apple.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
Apple *app = [[Apple alloc]init];
[app taste];
}
return 0;
}
扩展
#import <Foundation/Foundation.h>
@interface Car : NSObject
@property (nonatomic,copy) NSString*brand;
@property (nonatomic,copy) NSString*model;
-(void)drive;
@end
#import "Car.h"
#import "Car+NewCar.h"
@implementation Car
@synthesize brand,model,color;
-(void)drive{
NSLog(@"原方法");
}
-(void) drive:(NSString*)owner{
NSLog(@"扩展方法");
}
@end
#import "Car.h"
@interface Car ()
@property (nonatomic,copy) NSString* color;
-(void) drive:(NSString*)owner;
@end
#import <Foundation/Foundation.h>
#import "Car.h"
#import "Car+NewCar.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
Car* car = [[Car alloc]init];
[car drive];
[car drive:@"我"];
}
return 0;
}