ios 利用反射机制 封装 保存自定义数据模型的工具
1.建两个属性类
#import <Foundation/Foundation.h>
@interface XMDataProperties : NSObject
//保存数据属性名
@property (weak, nonatomic) NSString *name;
//保存数据属性类型
@property (weak, nonatomic) NSString *type;
//保存数据属性值
@property (weak, nonatomic) NSString *value;
@end
#import "XMDataProperties.h"
@implementation XMDataProperties
@end
主体代码,保存反正来,就不注释了
#import <Foundation/Foundation.h>
#import "XMDataProperties.h"
@interface XMDataSavingTools : NSObject
//保存方法
+(void) save: (NSObject *) obj forKey:(NSString *) key;
//加载方法
+(id) load:(NSString *) key;
@end
#import "XMDataSavingTools.h"
#include <objc/runtime.h>
@implementation XMDataSavingTools
//保存方法
+(void) save:(id)obj forKey:(NSString *) key{
NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults];
//需要保存的对象字典
NSDictionary *keyLibrart = [userDefault objectForKey:@"keyLibrart"];
NSMutableDictionary *newKeyLibrart = [[NSMutableDictionary alloc] init];
if (keyLibrart == nil) {
keyLibrart = [[NSMutableDictionary alloc] init];
}
//需要保存的对象的所有属性的映射key
NSMutableArray *array = [[NSMutableArray alloc] init];
//递归添加属性的映射进array
[self save:obj forKey:key array:array]