年年有"余"

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1870|回复: 0

iOS开发中多对象归档操作

[复制链接]
  • TA的每日心情
    奋斗
    2022-12-13 21:26
  • 签到天数: 371 天

    [LV.9]以坛为家II

    发表于 2014-11-5 23:40:10 | 显示全部楼层 |阅读模式
    1、NSData方式多对象归档
    1.     // 1、创建归档路径
    2.     NSString *dataPath = [documentsPath stringByAppendingPathComponent:@"data.plist"];
    3.     // 2、创建可变数据对象
    4.     NSMutableData *data = [NSMutableData data];
    5.     // 3、创建归档
    6.     NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
    7.     // 4、归档中添加对象元素
    8.     [archiver encodeObject:array forKey:@"array"];
    9.     [archiver encodeObject:dict forKey:@"dict"];
    10.     [archiver encodeObject:string forKey:@"string"];
    11.     [archiver encodeObject:imageData forKey:@"image"];
    12.     // 5、结束归档
    13.     [archiver finishEncoding];
    14.     // 6、写入本地沙盒
    15.     [data writeToFile:dataPath atomically:YES];
    16.     // 7、取出归档即解档
    17.     NSData *data1 = [NSData dataWithContentsOfFile:dataPath];
    18.     NSKeyedUnarchiver *unarchive1 = [[NSKeyedUnarchiver alloc] initForReadingWithData:data1];
    19.     // 8、还原各对象
    20.     NSArray *array1 = [unarchive1 decodeObjectForKey:@"array"];
    21.     NSDictionary *dict1 = [unarchive1 decodeObjectForKey:@"dict"];
    22.     NSString *string1 = [unarchive1 decodeObjectForKey:@"string"];
    23.     UIImage *imag1 = [UIImage imageWithData:[unarchive1 decodeObjectForKey:@"image"]];
    复制代码
    2、数组方式进行多对象归档
    1.     // 1、创建归档路径
    2.     NSString *dataPath2 = [documentsPath stringByAppendingPathComponent:@"data.array"];
    3.     // 2、创建多对象数组
    4.     NSArray *arrayArchiver = @[array, dict, string, imageData];
    5.     // 3、归档数组
    6.     [NSKeyedArchiver archiveRootObject:arrayArchiver toFile:dataPath2];
    7.     // [arrayArchiver writeToFile:dataPath2 atomically:YES];
    8.     // 4、取出归档即解档
    9.     NSArray *getArray2 = [NSKeyedUnarchiver unarchiveObjectWithFile:dataPath2];
    10.     //NSArray *getArray1 = [NSArray arrayWithContentsOfFile:dataPath2];
    11.     // 5、还原数组中各对象
    12.     NSArray *array2 = getArray2[0];
    13.     NSDictionary *dict2 = getArray2[1];
    14.     NSString *string2 = getArray2[2];
    15.     UIImage *image2 = [UIImage imageWithData:getArray2[3]];
    复制代码
    基本归档操作请参考:http://www.yusian.com/bbs/thread-7979-1-1.html
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    手机版|小黑屋|Archiver|iOS开发笔记 ( 湘ICP备14010846号 )

    GMT+8, 2024-5-3 05:19 , Processed in 0.049707 second(s), 22 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表