我有一个应用程序,我将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中执行此操作的内容,但一直未成功。我怎样才能解除价值?
答案 0 :(得分:6)
您可以使用
NSKeyedUnarchiver.unarchiveObject(with: Data)
您已使用 NSKeyedArchiver 。您不能使用它来取消归档对象。
答案 1 :(得分:3)