iOS 对象归档(1) 对foundation中对象进行归档

MainController.h

/*
 数据持久化是通过文件将数据存储在磁盘上
 四中数据持久化方式:
 1.属性列表(Property List)
 2.对象归档
 3.SQLite
 4.CoreDate
 
 对比:
 1.属性列表、对象归档适合小数据量存储和查询操作
 2.SQLite、CoreDate适合大数据量存储和查询操作
 
 对象归档:
 对象归档是将对象归档以文件的形式保存到磁盘中(也称为序列化,持久化),使用的时候读取该文件的保存路径
 读取文件的内容(也称为接档,反序列化)。
 (对象归档的文件是保密的,在磁盘上无法查看文件中的内容,而属性列表是明文的,可以查看)
 对象归档有两种方式:1:对foundation中对象进行归档  2:自定义对象归档
 
 */
#import <UIKit/UIKit.h>

@interface MainController : UIViewController

@end

MainController.m

#import "MainController.h"

@interface MainController ()

@end

@implementation MainController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    //获取根目录
    NSString *homeDirectory=NSHomeDirectory();
    NSString *path=[homeDirectory stringByAppendingFormat:@"test.archiver"];
    NSArray *array=@[@"abc",@"123",@"def",@"wto"];
    BOOL flag=[NSKeyedArchiver archiveRootObject:array toFile:path];
    if (flag) {
        NSLog(@"归档成功");
    }
    
    //读取的文档内容
    NSArray *array2=[NSKeyedUnarchiver unarchiveObjectWithFile:path];
    NSLog(@"归档数据:%@",array2);
    
    
    
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end


你可能感兴趣的:(iOS 对象归档(1) 对foundation中对象进行归档)