【发布时间】:2018-10-27 16:44:18
【问题描述】:
阅读 Apple 的代码我看到了以下内容(谈论 Keychain 服务):
query[kSecAttrService as String] = service as AnyObject?
AnyObject?的目的是什么?
我认为可以简化为
query[kSecAttrService as String] = service as AnyObject
有什么线索吗?
这是来自 Apple 示例的整个 sn-p:
private static func keychainQuery(withService service: String, account: String? = nil, accessGroup: String? = nil) -> [String : AnyObject] {
var query = [String : AnyObject]()
query[kSecClass as String] = kSecClassGenericPassword
query[kSecAttrService as String] = service as AnyObject?
if let account = account {
query[kSecAttrAccount as String] = account as AnyObject?
}
if let accessGroup = accessGroup {
query[kSecAttrAccessGroup as String] = accessGroup as AnyObject?
}
return query
}
【问题讨论】:
-
谁说 Apple 的样本必须包含完美无瑕的代码?
标签: swift casting optional keychainitemwrapper