【发布时间】:2014-06-14 01:20:21
【问题描述】:
我正在尝试创建钥匙串查询,但在将属性项键用作字典键时遇到了困难。创建字典时,我可以将包含在数组中的属性项作为字典键传递,就像这样,没有任何问题
genericPasswordQuery = NSMutableDictionary(objects: [kSecClassGenericPassword, identifier], forKeys: [kSecClass, kSecAttrGeneric])
但是,如果我尝试向查询字典中添加另一个类似的项目,如下所示:
genericPasswordQuery.setObject(accessGroup, key:kSecAttrAccessGroup)
它抱怨密钥不符合 NSCopying 并提供类型错误:
“找不到接受所提供参数的 'setObject' 的重载”
这是 SecItemAdd 的标准实现,但我在 Swift 中遇到问题。
【问题讨论】:
-
kSecAttrAccessGroup是如何定义的? -
是否有必要使用 NSMutableDictionay?您的代码也可以与 Swift 字典一起使用吗?您的优势在于您的密钥不需要符合 NSCopying 标准。
-
@Areal-17 使用 swift 词典,我收到错误“无法从 Dictionary 转换为 DictionaryLiteralConvertible”