2017-09-14 62 views
0

我有一個應用程序,其中我到UserDefaultsCNContact陣列保存爲這樣:如何在swift 3中解壓數據?

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。我的問題是如何將這些數據轉換回viewDidLoad中的CNContact數組。我在網上看到很多答案,建議使用NSKeyedArchiver.unarchiveObjectwithData,但在Xcode中輸入這個代碼,用swift 3,說.unarchiveObjectwithData不是NSKeyedArchiver的成員。我一直在尋找關於如何在swift 3中執行此操作的內容,但一直未能成功。我怎樣才能解除價值?

回答

6

您可以使用

NSKeyedUnarchiver.unarchiveObject(with: Data) 

您已使用過NSKeyedArchiver。你不能用這個來取消存檔Object。

2

如果按⇧⌘0打開文件,並鍵入NSK(3個字符就足夠了),你會看到

enter image description here

取消存檔東西,你需要的NSKeyed Un存檔器