归档:2-单个对象归档/解档
我们通过一个最简单的案例来介绍一个归档与解档的使用方法,新建一个工程,并且添加一个可供输入的UITextField,点击按钮来对输入内容进行归档/解档操作。
准备工作
为了使程序更加简洁,功能更加清晰,我们新建一个ArchiveService类,所有有关归档/解档的方法,我们统一在该方法中实现。在ArchiveService.h中,首先添加用于字符串对象归档解档的方法。
@interface ArchiveService : NSObject
+ (BOOL) writeStringToArchiveFile:(NSString *) string;
+ (NSString *) readStringFromArchiveFile;
@end
在Storyboard中搭建一个简单的界面,能够接收用户输入的一个字符串。同时添加两个按钮【写入归档文件】、【读取归档文件】,并且建立连接到控制器对象。
归档
调用NSKeyedArchiver的类方法archiveRootObject:toFile:可以将对象归档并返回一个布尔值用于标识归档是否成功。
+ (BOOL) writeStringToArchiveFile:(NSString *) string {
//获取文件路径
NSString *docPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
NSString *filePath = [docPath stringByAppendingPathComponent:@"string.archive"];
//归档对象
return [NSKeyedArchiver archiveRootObject:string toFile:filePath];
}
点击按钮【写入归档文件】,我们可以根据writeStringToArchiveFile:方法的返回值判断是否归档成功。
归档成功后,我们在App的沙盒路径中,可以看到自动生成的归档文件,并且该归档文件是无法预览的。
解档
通过调用NSKeyedUnarchiver类中提供的unarchiveObjectWithFile:方法,可以将文件解档,并返回文件中存储的对象。
+ (NSString *) readStringFromArchiveFile {
//获取文件路径
NSString *docPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
NSString *filePath = [docPath stringByAppendingPathComponent:@"string.archive"];
//解档
NSString *string = [NSKeyedUnarchiver unarchiveObjectWithFile:filePath];
return string;
}
点击按钮【读取归档文件】,在调试区可以看到打印出来的解档内容。
示例代码
https://github.com/99ios/13.4.2
文章发布时间为: December 1st , 2016 at 09:08 pm
最后编辑时间为: September 15th , 2017 at 05:24 am
本文由 99ios 创作,转载请注明出处
最后编辑时间为: September 15th , 2017 at 05:24 am
本文由 99ios 创作,转载请注明出处