代码之家  ›  专栏  ›  技术社区  ›  Lorenzo B

元素作为AnyObject vs元素vs AnyObject?

  •  0
  • Lorenzo B  · 技术社区  · 7 年前

    阅读苹果的代码,我看到了以下内容(谈论钥匙链服务):

    query[kSecAttrService as String] = service as AnyObject?
    

    你的目的是什么 AnyObject? ?

    我认为可以简化为

    query[kSecAttrService as String] = service as AnyObject
    

    以下是苹果示例的完整片段:

    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
    }
    
    1 回复  |  直到 7 年前
        1
  •  2
  •   vadian    7 年前

    private static func keychainQuery(withService service: String, account: String? = nil, accessGroup: String? = nil) -> [String : Any] {
        var query = [String : Any]()
        query[kSecClass as String] = kSecClassGenericPassword
        query[kSecAttrService as String] = service
    
        if let account = account {
            query[kSecAttrAccount as String] = account
        }
    
        if let accessGroup = accessGroup {
            query[kSecAttrAccessGroup as String] = accessGroup
        }
    
        return query
    }