model.h
//model.h
#import <Foundation/Foundation.h>
@interface UserDefaultsModel : NSObject<NSCoding>
@property(nonatomic, strong)NSString *name;
@property(nonatomic, copy)NSString *title;
@property(nonatomic, copy)NSString *num;
@property(nonatomic, assign)int i;
@property(nonatomic, assign)float f;
@end
model.m
//model.m
#import "UserDefaultsModel.h"
@implementation UserDefaultsModel
-(id)initWithCoder:(NSCoder *)aDecoder
{
self = [super init];
if (self != nil) {
NSLog(@"init");
self.name = [aDecoder decodeObjectForKey:@"name"];
self.title = [aDecoder decodeObjectForKey:@"title"];
self.num = [aDecoder decodeObjectForKey:@"num"];
self.i = [[aDecoder decodeObjectForKey:@"i"] intValue];
self.f = [[aDecoder decodeObjectForKey:@"f"] floatValue];
}
return self;
}
- (void)encodeWithCoder:(nonnull NSCoder *)aCoder {
NSLog(@"encodeWithCoder");
[aCoder encodeObject:self.name forKey:@"name"];
[aCoder encodeObject:self.title forKey:@"title"];
[aCoder encodeObject:self.num forKey:@"num"];
[aCoder encodeObject:@(self.i) forKey:@"i"];
[aCoder encodeObject:@(self.f) forKey:@"f"];
}
@end
调用
UserDefaultsModel *model = [[UserDefaultsModel alloc] init];
model.name = @"name1";
model.title = @"title1";
model.num = @"num1";
model.i = 1;
model.f = 1.11;
//做归档处理 储存data类型
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:model];
NSUserDefaults *udf = [NSUserDefaults standardUserDefaults];
[udf setObject:data forKey:@"model1"];
[udf synchronize];
//以上是存
//一下是取
NSData *data1 = [udf objectForKey:@"model1"];
UserDefaultsModel *resultModel = [NSKeyedUnarchiver unarchiveObjectWithData:data1];
NSLog(@"resultModel.name=%@", resultModel.name);//resultModel.name=name1
NSLog(@"resultModel.title=%@", resultModel.title);//resultModel.title=title1
NSLog(@"resultModel.num=%@", resultModel.num);//resultModel.num=num1
NSLog(@"resultModel.i=%d", resultModel.i);//resultModel.i=1
NSLog(@"resultModel.f=%f", resultModel.f);//resultModel.f=1.110000
网友评论