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
相关文章推荐
- 字面量语法的使用--IOS
- iOS学习之库
- iOS—OC——KVO,代理,通知
- IOS 本地推送通知
- 使你的Navigation Bar难以置信地兼容iOS6/7
- iOS no such provisioning profile was found
- iOS上传错误 ERROR ITMS-90049 立即解决方法
- iOS导航栏 如果只想改变单一自控制导航栏按钮 标题颜色 请进
- iOS常用的宏定义
- iOS开发中的常见设计模式
- iOS学习之OC语法基础-类和对象-什么是类
- 在iOS中扫描银行卡得到 银行卡的基本信息,暂时只支持 建行
- 利用字符替换进行混淆编译--参考念茜大神的杰作
- RFSegmentView在iOS7设备上不显示label的解决方案
- Nagios 搭建与配置
- IOS 开发获取沙盒路径
- isKindOfClass和isMemberOfClass的用法
- iOS--代码规范
- 关于class-dump在mac的下载和安装
- IOS安全–使用lldb对应用进行运行时分析