实现<NSCoding>协议
#import "HMCThread.h"
#import <objc/message.h>
@implementation HMCThread
- (void)dealloc{
NSLog(@"HMCThread---dealloc");
}
- (void)encodeWithCoder:(NSCoder *)aCoder{
unsigned int outCount = 0;
Ivar *vars = class_copyIvarList([self class], &outCount);
for(int i=0; i<outCount; i++){
Ivar var = vars[i];
NSString *key = [NSString stringWithUTF8String:ivar_getName(var)];
id value = [self valueForKey:key];
[aCoder encodeObject:value forKey:key];
}
}
- (nullable instancetype)initWithCoder:(NSCoder *)aDecoder{
if(self = [super init]){
unsigned int outCount = 0;
Ivar *vars = class_copyIvarList([self class], &outCount);
for(int i=0; i<outCount; i++){
Ivar var = vars[i];
NSString *key = [NSString stringWithUTF8String:ivar_getName(var)];
id value = [aDecoder decodeObjectForKey:key];
[self setValue:value forKey:key];
}
}
return self;
}