ArchiverDemo(两种归档的方法)

来源:互联网 发布:域名注册哪家比较好 编辑:程序博客网 时间:2024/05/18 00:41

#import <Foundation/Foundation.h>


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

{


    @autoreleasepool {

/*****************************第一种归档方法*******************************/

        

        

        //这种归档的缺点是 归档一个对象就对应一个文件多个对象就会又多个文件

//        

//        //将一个数组归档

//        NSArray *array = @[@"abc",@"123",@456];

//        //根路径

//        NSString *homePath = NSHomeDirectory();

//        //创建一个新的路径文件名的后缀可以随便 只是文件名的一部分

//        NSString *filePath = [homePath stringByAppendingPathComponent:@"/arc.archive"];

//        //判断归档是不是成功

//        BOOL success = [NSKeyedArchiver archiveRootObject:array toFile:filePath];

//        

//        if (success)

//        {

//            NSLog(@"archive success");

//        }

//        

//        

//        

//        //解归档

//        NSString *homePath = NSHomeDirectory();

//        NSString *filePath = [homePath stringByAppendingPathComponent:@"/arc.archive"];

//        NSArray *array = [NSKeyedUnarchiver unarchiveObjectWithFile:filePath];

//        NSLog(@"%@",array);\


        

/*****************************第二种归档方法*******************************/

//        //自定义内容的归档

//        //创建一个可变data 给归档对象

//        NSMutableData *data = [NSMutableData data];

//        NSString *homePath = NSHomeDirectory();

//        NSString *filePath = [homePath stringByAppendingPathComponent:@"archiver2.arc"];

//        NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc]initForWritingWithMutableData:data];

//        //将不同的数据类型归档

//        [archiver encodeObject:@[@"123",@"asd",@34] forKey:@"array"];

//        [archiver encodeFloat:23.7 forKey:@"float"];

//        //调用下边的方法 将数据传到data里边

//        [archiver finishEncoding];

//        [archiver release];

//        //将文件写入路径并判断是否成功

//        BOOL success = [data writeToFile:filePath atomically:YES];

//        if (success)

//        {

//            NSLog(@"archive success");

//        }

       //解归档

       NSString *homePath = NSHomeDirectory();

       NSString *filePath = [homePath stringByAppendingPathComponent:@"archiver2.arc"];

       NSData *data = [NSDatadataWithContentsOfFile:filePath];

       NSKeyedUnarchiver *unArchiver = [[NSKeyedUnarchiveralloc]initForReadingWithData:data];

       NSArray *array = [unArchiver decodeObjectForKey:@"array"];

       float f = [unArchiver decodeFloatForKey:@"float"];

        [unArchiverrelease];

        NSLog(@"array = %@ f = %f",array,f);

        

        

    }

   return 0;

}

0 0
原创粉丝点击