IOS学习之数据存储
来源:互联网 发布:linux下安装禅道 编辑:程序博客网 时间:2024/05/02 08:12
数据存储之plist
/**
* 存储plist
*/
- (void) savePlist
{
// 1.获得沙盒跟路径
NSString *home = NSHomeDirectory();
// 2.document路径
NSString *path = [home stringByAppendingPathComponent:@"Documents"];
// 3.新建数据
NSArray *data = @[@"jack",@10,@"aaa"];
NSString *filePath = [path stringByAppendingPathComponent:@"data.plist"];
[data writeToFile:filePath atomically:YES];
}
/**
* 读取plist
*/
- (void) readPlist
{
// 1.获得沙盒跟路径
NSString *home = NSHomeDirectory();
// 2.document路径
NSString *path = [home stringByAppendingPathComponent:@"Documents"];
NSString *filePath = [path stringByAppendingPathComponent:@"data.plist"];
NSArray *data = [NSArray arrayWithContentsOfFile:filePath];
NSLog(@"%@",data);
}
数据存储之偏好设置
/**
* 存储偏好设置
*/
- (void) savePhsz
{
// 1.利用NSUserDefaults,就能直接访问软件的偏好设置(Library/Preferences)
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
// 2.存储数据
[defaults setObject:@"xu" forKey:@"zh"];
[defaults setObject:@"123" forKey:@"pwd"];
[defaults setInteger:10 forKey:@"age"];
[defaults setBool:YES forKey:@"auto_login"];
[defaults synchronize];
}
/**
* 读取偏好设置
*/
- (void) readPhsz
{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *zh = [defaults objectForKey:@"zh"];
NSLog(@"%@",zh);
}
数据存储之归档
- (IBAction)save {
// 1.新的模型对象
XUStudent *stu = [[XUStudent alloc] init];
stu.no = @"42343254";
stu.age = 20;
stu.height = 1.55;
// 2.归档模型对象
// 2.1.获得Documents的全路径
NSString *doc = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
// 2.2.获得文件的全路径
NSString *path = [doc stringByAppendingPathComponent:@"stu.data"];
// 2.3.将对象归档
[NSKeyedArchiver archiveRootObject:stu toFile:path];
}
- (IBAction)read {
// 1.获得Documents的全路径
NSString *doc = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
// 2.获得文件的全路径
NSString *path = [doc stringByAppendingPathComponent:@"stu.data"];
// 3.从文件中读取MJStudent对象
XUStudent *stu = [NSKeyedUnarchiver unarchiveObjectWithFile:path];
NSLog(@"%@ %d %f", stu.no, stu.age, stu.height);
}
XUStudent必须遵守NSCoding协议
并且必须实现如下两个方法
/**
* 将某个对象写入文件时会调用
* 在这个方法中说清楚哪些属性需要存储
*/
- (void)encodeWithCoder:(NSCoder *)encoder
/**
* 从文件中解析对象时会调用
* 在这个方法中说清楚哪些属性需要存储
*/
- (id)initWithCoder:(NSCoder *)decoder
- IOS学习之数据存储
- iOS学习之 - 数据存储
- IOS开发学习笔记之数据存储
- iOS之数据存储
- IOS学习之ios应用数据存储方式(偏好设置)
- IOS学习之ios应用数据存储方式(归档)
- iOS学习,数据存储小结
- iOS学习笔记--数据存储
- iOS 数据存储之我见
- iOS数据存储之---归档
- iOS 数据存储之---sqlite3
- iOS数据存储之NSUserDefault
- ios 数据存储之plist
- ios数据存储之归档
- iOS开发之数据存储
- iOS-数据存储之FMDB
- iOS 数据存储之keychain
- IOS学习之ios开发之数据的持久化存储机制
- Lua千分位格式化数字
- cocos2dx中lua计算两个点之间夹角计算
- Ireport JRParameter参数说明
- iOS开发-使用storyboard设置button图像和文字的位置
- Codeforces Round #286 (Div. 2) C. Mr. Kitayuta, the Treasure Hunter——dp
- IOS学习之数据存储
- [Leetcode]Binary Tree Level Order Traversal II
- LeetCode: Largest Number
- [Android] [危险!]支付宝钱包手势密码实战破解(root过的手机可直接绕过手势密码
- Windows 2000、2003、2008、2008 R2(IIS 5、6、7、7.5)中不支持 .shtml、.shtm 的解决办法
- 数据库设计的重要性和设计原则
- 【Acm】开关灯
- POJ 1006 Biorhythms
- Largest Number|leetcode解决方案