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

如何在swift 3中取消归档数据?,swift,nsuserdefaults,Swift,Nsuserdefaults,我有一个应用程序,我将CNContact数组保存到UserDefaults,如下所示: var contactsArray = [CNContact]() let defaults = UserDefaults() func (contact: CNContact){ contactsArray.append(contact) let contactArrayArchive = NSKeyedArchiver.archivedData(withRootObject: contac

我有一个应用程序,我将
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()
}
这将对数据进行存档,以便将其保存到默认值
。我的问题是如何将这些数据转换回
viewDidLoad
中的
CNContact
数组。我在网上看到了很多答案,建议使用
NSKeyedArchiver.unarchiveObjectwithData
,但用swift3将其输入Xcode,表示
.unarchiveObjectwithData
不是
NSKeyedArchiver
的成员。我一直在寻找有关如何在swift 3中做到这一点的资料,但一直没有成功。如何取消存档该值?

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

un存档某些内容,如果按,则需要键入unarchiver

⇧⌘0打开文档并键入nsk(3个字符足够),您将看到

un归档您需要的内容,可以使用

 NSKeyedUnarchiver.unarchiveObject(with: Data)
您已经使用了NSKeyedArchiver。您不能使用此命令取消对象归档。

您可以使用

 NSKeyedUnarchiver.unarchiveObject(with: Data)
您已经使用了NSKeyedArchiver。不能使用此选项取消归档对象