gpt4 book ai didi

Swift 如何将联系人保存为默认值

转载 作者:行者123 更新时间:2023-11-30 10:03:03 25 4
gpt4 key购买 nike

大家早上好,我遵循了本教程我能够添加新联系人并检索现有联系人,但我想要完成的是将添加的列表保存在 mutableArray 中,并使用该数组填充我的 TableView。我收到此错误

联系人简介[5166:4971615] *** 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“尝试插入非属性列表对象( "!$_, value=>\"\n), emailAddresses=(\n\"!$_, value=>\"\n), postalAddresses=(\n)>") 为关键联系人Key'

这里

 func insertNewObject(sender: NSNotification) {

print("How Many Times am I getting here ??")

if let contact = sender.userInfo?["contactToAdd"] as? CNContact {
objects.insert(contact, atIndex: 0)
let indexPath = NSIndexPath(forRow: 0, inSection: 0)
self.tableView.insertRowsAtIndexPaths([indexPath], withRowAnimation: .Automatic)
}

print("How Many Objects ",objects.count)

let contactArray = objects as [CNContact]
let prefs = NSUserDefaults.standardUserDefaults()
prefs.setValue(contactArray, forKey: "contactsKey")

}

感谢任何帮助。

问候JZ

最佳答案

NSUserDefaultsproperty list 支持,因此您只能向其中添加属性列表对象 ( see list of compatible objects here ) 的对象。

CNContact 不在该列表中,因此您无法将其直接添加到 NSUserDefaults 中。

解决此问题的一种方法是手动将 CNContact 对象序列化/反序列化为兼容的对象,例如 NSDictionaryNSData ( like in this answer )然后您可以将其保存到 NSUserDefaults

关于Swift 如何将联系人保存为默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37443935/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com