您的位置:首页 > 移动开发 > IOS开发

ios 数据本地存储基本用法

2015-11-04 16:07 323 查看

plist 文件读写

数据写入plist文件
//data soure
NSArray *data = @[@"AAA",@"BBB",@"CCC"];

//get document path
NSString *doc = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];

NSLog(@"%@",doc);

//create plist path
NSString *filePath=[doc stringByAppendingPathComponent:@"my.plist"];

//write data to plist file
[data writeToFile:filePath atomically:YES];

从plist文件中读取数据

NSString *doc = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];

//create plist path
NSString *filePath=[doc stringByAppendingPathComponent:@"my.plist"];

NSArray *array = [NSArray arrayWithContentsOfFile:filePath];

NSLog(@"%@",array);


用户偏好设置(Preferences)

//写入数据
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:@"acct" forKey:@"userName"];
[defaults setFloat:10.0f forKey:@"money"];
[defaults setBool:YES forKey:@"is_auto"];
[defaults synchronize];

//读取数据
NSString *acct = [defaults objectForKey:@"userName"];
float money = [defaults floatForKey:@"money"];
BOOL is_auto = [defaults boolForKey:@"is_auto"];
NSLog(@"%@,%f,%@",acct,money,is_auto?@"YES":@"NO");

//删除数据
[defaults removeObjectForKey:@"acct"];
[defaults synchronize];


 NSCoding (NSKeyedArchiver,NSKeyedUnarchiver) 序列化

Person *person =[[Person alloc] init];
person.name=@"tom";
person.tel=@"1366666666";
person.age=18;

NSString *filePath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]stringByAppendingPathComponent:@"test.plist"];

[NSKeyedArchiver archiveRootObject:person toFile:filePath];

Person *nscodeingPerson = [NSKeyedUnarchiver unarchiveObjectWithFile:filePath];
NSLog(@"name=%@,age=%ld,tel=%@",nscodeingPerson.name,nscodeingPerson.age,nscodeingPerson.tel);

Person.h

#import <Foundation/Foundation.h>

@interface Person : NSObject<NSCoding>
@property(nonatomic,copy)NSString *name;
@property (nonatomic,copy)NSString *tel;
@property(nonatomic,assign)NSInteger age;

@end

Person.m
#import "Person.h"

@implementation Person

-(void)encodeWithCoder:(NSCoder *)aCoder{
[aCoder encodeObject:self.name forKey:@"name"];
[aCoder encodeInteger:self.age forKey:@"age"];
[aCoder encodeObject:self.tel forKey:@"tel"];
}

-(id)initWithCoder:(NSCoder *)aDecoder{
if (self=[super init]) {
self.name = [aDecoder decodeObjectForKey:@"name"];
self.age = [aDecoder decodeIntegerForKey:@"age"];
self.tel = [aDecoder decodeObjectForKey:@"tel"];
}
return  self;
}
@end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: