美文网首页iOS开发iOS Developer
NSUserDefaults存取数据

NSUserDefaults存取数据

作者: SwifterZ | 来源:发表于2016-07-29 15:52 被阅读95次

存取文本数据

//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];

相关文章

网友评论

    本文标题:NSUserDefaults存取数据

    本文链接:https://www.haomeiwen.com/subject/qlyzjttx.html