ios 数据本地存储基本用法

来源:互联网 发布:c 并发编程 编辑:程序博客网 时间:2024/06/03 04:01



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;@endPerson.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


0 0