IOS_UI_本地存储-复杂的对象写入本地
来源:互联网 发布:淘宝 做工粗糙 有瑕疵 编辑:程序博客网 时间:2024/06/09 19:20
复杂对象写入需要建一个类
先建一个Boss的类
#import <Foundation/Foundation.h>
//如果让一个类的所有属性的值都可以移动到一起,方便写入磁盘.系统提供了一个协议:<NSCoding>
@interface Boss : NSObject<NSCoding>
@property (nonatomic,retain)NSString *name;
@property (nonatomic,retain)NSString *gender;
@property (nonatomic,assign)NSInteger age;
@property (nonatomic,assign)NSInteger number;
@end
#import "Boss.h"
@implementation Boss
//两个必须实现的协议方法
- (void)encodeWithCoder:(NSCoder *)aCoder
{
//编码的方法 把不同数据写到一个地方
[aCoder encodeObject:self.nameforKey:@"name"];
[aCoder encodeObject:self.genderforKey:@"gender"];
[aCoder encodeInteger:self.numberforKey:@"number"];
[aCoder encodeInteger:self.ageforKey:@"age"];
}
- (id)initWithCoder:(NSCoder *)aDecoder
{
//解码的方法 初始化方法作用是给创建的对象一个初始值
self = [superinit];
if (self) {
self.name = [aDecoderdecodeObjectForKey:@"name"];
self.gender = [aDecoderdecodeObjectForKey:@"gender"];
self.age = [aDecoderdecodeIntegerForKey:@"age"];
self.number = [aDecoderdecodeIntegerForKey:@"number"];
}
return self;
}
- (void)dealloc
{
[_name release];
[_gender release];
[super dealloc];
}
@end
- (void)viewDidLoad {
[superviewDidLoad];
//复杂对象写入本地
//新建一个boss类
Boss *boss = [[Bossalloc]init];
boss.name = @"大魔王";
boss.gender = @"未知";
boss.age = 1000;
boss.number = 1;
NSString *bossPath = [docPathstringByAppendingPathComponent:@"boss.suibian"];
//归档类(把复杂对象的数据写入本地)
[NSKeyedArchiver archiveRootObject:boss toFile:bossPath];
//反归档(按照路径读取数据写入本地)
Boss *newBoss = [NSKeyedUnarchiverunarchiveObjectWithFile:bossPath];
NSLog(@"%@",newBoss.name);
NSLog(@"%@,%@",boss,newBoss);
[boss release];
//快速将一个简单对象写入本地
//单例: 一个应用程序的执行期间,只能创建出一个对象.
//对于一个单例,系统都会提供一个+号方法作为创建/获取对象的方法
//这个方法第一次使用会创建一个对象,之后使用都是直接获取这个对象
// [NSFileManager defaultManager]
// [UIApplication sharedApplication]
// [UIScreen mainScreen ]
// [NSOperationQueue mainQueue]
// [UIDevice currentDevice]
// [NSThread mainThread];
//存
[[NSUserDefaultsstandardUserDefaults] setObject:@"qianqian"forKey:@"saveName"];
// //把现有的更改同步到本地
[[NSUserDefaultsstandardUserDefaults]synchronize];
//取
NSLog(@"%@",[[NSUserDefaultsstandardUserDefaults]objectForKey:@"saveName"]);
NSUserDefaults *userDe = [NSUserDefaultsstandardUserDefaults];
//取值
NSString *result = [userDe objectForKey:@"firstTime"];
if (result == nil) {
NSLog(@"第一次");
[userDe setObject:@"suibian"forKey:@"firstTime"];
[userDe synchronize];
}else{
NSLog(@"不是第一次");
}
}
- IOS_UI_本地存储-复杂的对象写入本地
- IOS_UI_本地存储
- 字符串,数组和字典的简单本地存储!以及复杂类型对象的存储
- iOS本地数据存储都有哪几种方式?iOS如何实现复杂对象的存储?
- 复杂对象的本地持久化
- html5本地存储对象
- iOS 数据的本地存储-对象归档
- js 本地存储 对象存储
- 本地存储json对象问题
- android实现对象写入XML,本地缓存
- 数据的本地存储
- HTML5的本地存储
- html5的本地存储
- 本地存储的读写
- iOS的本地存储
- 数据库的本地存储
- html5的本地存储
- HTML5的本地存储
- iphone 开发之pch文件的创建与使用
- 32位与64位机器下各数据类型长度对比
- 深刻理解Linux进程间通信(IPC)
- codeforces 318 D. Bear and Cavalry
- koa项目,利用koa框架完成mcv风格代码书写及基本的常用操作
- IOS_UI_本地存储-复杂的对象写入本地
- CocoaPods安装和使用笔记
- Spring MVC源码深入剖析执行流程
- MCC(移动国家码)和 MNC(移动网络码)
- 疯狂猜歌实现(5)—— 实现待选文字框动画以及点击事件
- 《高性能MySQL》第五章
- Android Volley的基本用法
- java 读取src目录下的配置文件
- linux下如何从终端打开文件夹,并且获取管理员权限