gpt4 book ai didi

ios - 与 archiveRootObject :toFile: and writeToFile: 的差异

转载 作者:技术小花猫 更新时间:2023-10-29 11:23:51 25 4
gpt4 key购买 nike

最近,我正在学习 NSKeyedArchiver 和 NSKeyedUnarchiver。我发现存在三种归档数组的方法,我正在尝试找出它们之间的区别。

1.使用archiveRootObject:toFile:

    [NSKeyedArchiver archiveRootObject:testArray toFile:filePath];

2.从archivedDataWithRootObject:获取数据并写入文件

    NSData *data = [NSKeyedArchiver archivedDataWithRootObject:testArray];
[data writeToFile:filePath atomically:YES];

3.使用encodeObject:获取数据

    NSMutableData *data = [NSMutableData data];
NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
[archiver encodeObject:testArray forKey:@"testArray"];
[archiver finishEncoding];
[data writeToFile:path atomically:YES];

经过测试,我发现上述所有方式都可以正常工作,并且将相同的内容写入文件。

Q1:以上几种方式有什么区别?

Q2:第三种方式可以使用NSData吗?

最佳答案

第一个不会让您选择如何处理数据。它将转到一个文件。例如,我使用第二种方式通过网络连接发送数据。它更灵活。第三种方法做同样的事情,除了你可以把单个对象放进去。我不确定它是否可以与现有的数组一起使用,但它可能会。它甚至更加灵活,因此您不需要为它准备好数组或字典。

差不多就这些了。这完全是关于便利性与灵 active 。

关于ios - 与 archiveRootObject :toFile: and writeToFile: 的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16077192/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com