天天看点

Object-C 学习笔记(二十八)--- 归档(1)

归档:是把数据持久化到本地,归档是其中的一样,数据库是一种持久化的归档,但是归档有一个特点,持久化到本地的数据是经过加密.不能够用特定的软件读看里面的内容.与文件操作最大的区别.

归档也叫做序列化,解档叫反序列化.

下面实例是把数组归档和解档:

//
//  main.m
//  storeDemo1
//
//  Created by 5016 on 13-12-18.
//  Copyright (c) 2013年 dradon. All rights reserved.
//

#import <Foundation/Foundation.h>

//归档-----序列化
//数组归档
void store()
{
    //1.获取路径
    NSString *homePath = NSHomeDirectory();
    NSString *targetPath = [homePath stringByAppendingPathComponent:@"Desktop/arr.archive"];
    //2.准备数据
    NSArray *arr = @[@002,@555,@"dragon",@"yeah"];
    //3.归档
    BOOL success = [NSKeyedArchiver archiveRootObject:arr toFile:targetPath];
    
    if (success) {
        NSLog(@"归档成功");
    }
    else
    {
        NSLog(@"归档失败");
    }
    
}

//解档-----反序列化
//数组解档
void readstroe()
{
    //1.获取路径
    NSString *homePath = NSHomeDirectory();
    NSString *targetPath = [homePath stringByAppendingPathComponent:@"Desktop/arr.archive"];
    //2.解档成为数组
    NSArray *unarr = [NSKeyedUnarchiver unarchiveObjectWithFile:targetPath];
    NSLog(@"new arr=%@",unarr);
}

int main(int argc, const char * argv[])
{

    @autoreleasepool {
        store();
        readstroe();
        
    }
    return 0;
}