- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
最近,我正在学习 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/
我有一组自定义对象,我正在将它们转换为 NSMutableDictionary,然后从中创建一个数组(这部分目前按预期工作)。 然后我尝试使用 NSKeyedArchiver 将该数据数组保存为文件。
过去几个小时我一直在努力解决这个问题,但我已经没有想法了。 我想做的只是存档一个对象,但是方法 archiveRootObject 一直返回 NO 这是我的代码: NSArray *paths = N
我有一个非常简单的问题,我只是找不到合适的答案。那是 [NSKeyedArchiver archiveRootObject:value toFile:filePath]; 根据苹果文档 here ,上
我在下面有两个模型 swift 文件。 // Item.swift import UIKit class Item: NSObject, NSCoding { var name: String
我正在制作一个 iPhone 应用程序并在 previous question 中我被告知我需要 archiverootobject 和 unarchiverootobject 的有效文件路径,但我不
我是 Objective C 的新手,正在编写一些简单的程序来熟悉自己。 尝试使用 NSKeyedArchiver 保存/读取信息,但每次我这样做都无法创建 .plist 文件。我环顾四周,一直找不到
我目前正在 Xcode 7 和 ios 9 上使用 SpriteKit,我遇到了建议的 URLByAppendingPathComponent 方法,该方法用于访问文件的本地 url 并结合 arch
是否真的可以调用 NSKeyedArchiver archiveRootObject 并使用数据保护 API 将文件属性设置为 NSFileProtectionComplete 或 NSFilePro
最近,我正在学习 NSKeyedArchiver 和 NSKeyedUnarchiver。我发现存在三种归档数组的方法,我正在尝试找出它们之间的区别。 1.使用archiveRootObject:to
NSKeyedArchiver.archiveRootObject(, toFile: ) 仅第一次返回true。每次我下次调用它时,该方法都会返回 false。 我读了一些SO,一些帖子说我不能用这
我有一个自定义的 Swift 类,它使用 NSKeyedArchiver 将数据写入文件系统。此类中完成这项工作的功能之一是: func writeDataToArchive (data: AnyOb
使用 iOS 12,archiveRootObject:toFile:已被弃用。谁能建议一种简化的替代方法来将对象归档到文件中? //Generic example of archiver prior
我是一名优秀的程序员,十分优秀!