1、类别(category)和扩展
类别:OC动态特征许使用类别添加新的方法,不需要创建子类
扩展:和类别相似,扩展相对于匿名类别
2、使用格式
类别:
@interface 已有类(类别名)
…
@end
@implmentaion 已有类(类别名)
…
@end
扩展:
@imterface 也有类()
{
实例变量
}
//方法
...
@end
3、哪些功能
1)、给一个现成的类增加类别,然后实现其方法
2)、模块化设计
3)、调用私有方法(没有在接口部分定义而是在类实现部分定义的方法相对于私有方法,不许调用),通过定义向前引用,实现对私有方法调用
4、测试类别Demo
NSNumer+fk.h
#ifndef NSNumber_fk_h
#define NSNumber_fk_h
#import <Foundation/Foundation.h>
@interface NSNumber(fk)
-(NSNumber *)add:(double)num2;
-(NSNumber *)sub:(double)num2;
@end
#endif /* NSNumber_fk_h */
NSNumer+fk.m
#import <Foundation/Foundation.h>
#import "NSNumber+fk.h"
@implementation NSNumber(fk)
-(NSNumber *)add:(double)num2
{
return [NSNumber numberWithDouble:([self doubleValue] + num2)];
}
-(NSNumber *)sub:(double)num2
{
return [NSNumber numberWithDouble:([self doubleValue] - num2)];
}
@end
MyApple.h
#import <Foundation/Foundation.h>
#ifndef MyApple_h
#define MyApple_h
@interface MyApple : NSObject
@property (nonatomic, assign) double weight;
@property (nonatomic, copy) NSString *color;
//java方法构造方法一般没有返回,oc这里需要返回id,记住
-(id)initWithColor:(NSString *)color weight:(double)weight;
@end
IOS学习笔记十二(类别和扩展)
最新推荐文章于 2024-06-10 21:26:41 发布