1.类扩展
可以添加属性和方法,在编译时写入ro数据段中
(1)找到read_images()方法,加载镜像
截屏2020-09-29 17.04.45.png
(2)在此处打个断点,查看ro里面的数据
截屏2020-09-29 17.05.00.png
截屏2020-09-29 17.05.11.png
截屏2020-09-29 17.05.38.png
截屏2020-09-29 17.05.49.png
截屏2020-09-29 17.06.02.png
(3)可以看到此时ro里面可以找到方extM_method方法和nName属性,证明类扩展在编译时就执行了,将数据写入了ro中.
2.实例
类扩展:
#import <AppKit/AppKit.h>
#import "LGPerson.h"
NS_ASSUME_NONNULL_BEGIN
@interface LGPerson ()
@property (nonatomic, copy) NSString *ext_name;
@property (nonatomic, copy) NSString *ext_subject;
- (void)extH_method;
@end
NS_ASSUME_NONNULL_END
类.h文件:
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface LGPerson : NSObject
@property (nonatomic, copy) NSString *name;
@end
NS_ASSUME_NONNULL_END
类.m文件:
#import "LGPerson.h"
#import "LGPerson+LGExtension.h"
@interface LGPerson ()
@property (nonatomic, copy) NSString *mName;
- (void)extM_method;
@end
@implementation LGPerson
+ (void)load{
NSLog(@"%s",__func__);
}
- (void)extM_method{
NSLog(@"%s",__func__);
}
- (void)extH_method{
NSLog(@"%s",__func__);
}
@end
3.注意
创建了类扩展以后,要将类扩展引入类中
截屏2020-09-29 17.08.58.png
网友评论