如何在swift 3中取消归档数据?

时间:2017-09-14 03:47:33

标签: swift nsuserdefaults

我有一个应用程序,我将var x = "mmmm lll\"kkkk\\jjj/iiii,hhhh:gggg+ffff-eee+dddd;cccc|bbbb:aaaa"; \\ ^^^ <- Note this, otherwise it's trying to escape `j` console.log(x) var separators = [' ', '\\\+', '-', ';', '"', '\\|','//', '\\|', '\\\(', '\\\)', '\\*', '/', ':', '\\\?', ',', '\\\\\+']; console.log(separators.join('|')); var tokens = x.split(new RegExp(separators.join('|'), 'g')); console.log(tokens); 数组保存到CNContact

UserDefaults

这会归档数据以允许将其保存到var contactsArray = [CNContact]() let defaults = UserDefaults() func (contact: CNContact){ contactsArray.append(contact) let contactArrayArchive = NSKeyedArchiver.archivedData(withRootObject: contactArray) //archive the data defaults.set(contactArrayArchive, forKey: "contactArray") defaults.synchronize() } 。我的问题是如何将此数据转换回defaults中的CNContact数组。我在网上看到了许多建议使用viewDidLoad的答案,但是使用swift 3将其键入Xcode,表示NSKeyedArchiver.unarchiveObjectwithData不是.unarchiveObjectwithData的成员。我一直在寻找有关如何在swift 3中执行此操作的内容,但一直未成功。我怎样才能解除价值?

2 个答案:

答案 0 :(得分:6)

您可以使用

 NSKeyedUnarchiver.unarchiveObject(with: Data)

您已使用 NSKeyedArchiver 。您不能使用它来取消归档对象。

答案 1 :(得分:3)

如果按⇧⌘0打开文档并输入 nsk (3个字符就足够了),您将看到

SurviveJS Webpack Dynamic Loading

取消归档您需要的NSKeyed Un 归档