NSUserDefaults存取数据
2016-07-29 本文已影响95人
SwifterZ
存取文本数据
//object是你需要存的对象,name为其对应的key值
[[NSUserDefaults standardUserDefaults] setObject:object forKey:@"name"];
//name为所要取的object对应的key值
[[NSUserDefaults standardUserDefaults] objectForKey:@"name"];
存取图片数据
//保存到NSUserDefaults
NSData *imageData;
imageData = [NSKeyedArchiver
archivedDataWithRootObject:yourUIImage];
[[NSUserDefaults standardUserDefaults]
setObject:imageData forKey:@"image"];
//从NSUserDefaults中加载
NSData *imageData;
imageData = [[NSUserDefaults
standardUserDefaults] objectForKey:@"image"];
if(imageData != nil) {
yourUIImage = [NSKeyedUnarchiver unarchiveObjectWithData: imageData];
}
存取自定义对象
//首先该对象实现NSCoding协议
#import <Foundation/Foundation.h>
@interface Record : NSObject <NSCoding>
@property (nonatomic) NSString* event;
@property (nonatomic) NSDate* applyDate;
@property (nonatomic) NSString* interfacePerson;
@end
//然后在.m文件里实现两个方法
#import "Record.h"
@implementation Record
- (void)encodeWithCoder:(NSCoder *)aCoder {
[aCoder encodeObject:self.event forKey:@"event"];
[aCoder encodeObject:self.applyDate forKey:@"applyDate"];
[aCoder encodeObject:self.interfacePerson forKey:@"person"];
}
- (instancetype)initWithCoder:(NSCoder *)aDecoder {
if ( self = [super init] ) {
self.event = [aDecoder decodeObjectForKey:@"event"];
self.applyDate = [aDecoder decodeObjectForKey:@"applyDate"];
self.interfacePerson = [aDecoder decodeObjectForKey:@"person"];
}
return self;
}
@end
//将自定义类型数据存入 NSUserDefaults 中
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:record];
[[NSUserDefaults standardUserDefaults] setObject:data forKey:@"record"];
//将自定义类型数据从 NSUserDefaults 取出
NSData *data = [ [NSUserDefaults standardUserDefaults] objectForKey:@"record"];
Record *record = [NSKeyedUnarchiver unarchiveObjectWithData:data];