initWithCoder 和 decodeWithCoder
来源:互联网 发布:编程里面绝对值的表示 编辑:程序博客网 时间:2024/06/06 20:17
编码:
TestData *testData = [[TestDataalloc]init];
testData.testDate = [NSDatedate];
testData.testString =@"hello world";
[testDataarchiveSelf];
解码:
TestData *testData = [[TestDataalloc]init];
testData = [testDataunarchiveSelf];
具体实现
- (id)initWithCoder:(NSCoder *)aDecoder
{
self = [superinit];
if(self)
{
self.testString = [aDecoderdecodeObjectForKey:@"testString"];
self.testDate = [aDecoderdecodeObjectForKey:@"testDate"];
}
return self;
}
-(void)encodeWithCoder:(NSCoder *)aCoder{
[aCoderencodeObject:self.testStringforKey:@"testString"];
[aCoderencodeObject:self.testDateforKey:@"testDate"];
}
- (void)archiveSelf
{
NSFileManager *fileManager = [NSFileManagerdefaultManager];
NSArray *paths =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
NSString *path = [[pathsobjectAtIndex:0]stringByAppendingPathComponent:@"test"];
BOOL isDir =NO;
BOOL existed = [fileManagerfileExistsAtPath:path isDirectory:&isDir];
if ( !(isDir ==YES && existed ==YES) ){
[fileManager createDirectoryAtPath:pathwithIntermediateDirectories:YESattributes:nilerror:nil];
}
NSString *fname = [pathstringByAppendingPathComponent:[NSStringstringWithFormat:@"test.dat"]];//todo测试会不会覆盖
//归档
[NSKeyedArchiverarchiveRootObject:selftoFile:fname];
}
- (id)unarchiveSelf
{
NSFileManager *fileManager = [NSFileManagerdefaultManager];
NSArray *rootPath =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
NSString *path = [[[rootPathobjectAtIndex:0]stringByAppendingPathComponent:@"test"]stringByAppendingPathComponent:@"test.dat"];
BOOL isDir =NO;
BOOL existed = [fileManagerfileExistsAtPath:path isDirectory:&isDir];
if ( !(isDir ==YES && existed ==YES) ){
[fileManager createDirectoryAtPath:pathwithIntermediateDirectories:YESattributes:nilerror:nil];
}
return [NSKeyedUnarchiverunarchiveObjectWithFile:path];
}
- initWithCoder 和 decodeWithCoder
- initWithFrame: 和 initWithCoder: 区别
- initWithFrame 和 initWithCoder
- initWithFrame 和 initWithCoder 差别
- initwithcoder和 initwithframe 区别?
- initWithFrame 和 initWithCoder
- initWithFrame 和 initWithCoder
- initwithcoder和 initwithframe
- initWithFrame 和 initWithCoder
- initWithFrame 和 initWithCoder
- initwithcoder和 initwithframe
- initWithFrame 和 initWithCoder 区别
- initWithFrame和initWithCoder
- initWithFrame和 initWithCoder
- initWithFrame 和 initWithCoder 区别
- initWithFrame 和 initWithCoder
- awakeFromNib和initWithCoder差别
- initWithCoder
- Android学习笔记
- DECODE的使用
- 运行Shell程序的方法
- Linux设备驱动开发基础---新驱动程序添加到内核方法(2)
- android中ListView异步加载图片时的图片错位问题解决方案
- initWithCoder 和 decodeWithCoder
- SQL Server索引碎片处理
- Cheatsheet: 2013 06.01 ~ 06.22
- HDU-1072-Nightmare
- hibernate 需要导入的包--转
- 关于软件的一些想法
- Android屏幕图标尺寸规范
- sql server数据文件的监控方法
- 计算程序运行时间