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

Ale*_*cki 0 nsuserdefaults swift

我有一个应用程序,其中我保存的阵列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()
}
Run Code Online (Sandbox Code Playgroud)

这会归档数据以允许将其保存到defaults.我的问题是我怎么能这样的数据转换回阵列CNContactviewDidLoad.我在网上看到很多答案,建议使用NSKeyedArchiver.unarchiveObjectwithData但是在Xcode中键入这个,swift 3,表示它.unarchiveObjectwithData不是.的成员NSKeyedArchiver.我一直在寻找有关如何在swift 3中执行此操作的内容,但一直未成功.我怎样才能解除价值?

nik*_*hil 7

您可以使用

 NSKeyedUnarchiver.unarchiveObject(with: Data)
Run Code Online (Sandbox Code Playgroud)

你使用过NSKeyedArchiver.您不能使用它来取消归档对象.