Swift 我可以从字典返回键入的对象吗<;字符串,AnyObject>;?

Swift 我可以从字典返回键入的对象吗<;字符串,AnyObject>;?,swift,types,Swift,Types,以下是我现在拥有的: enum TestKeys: String { case login = "login" case username = "username" } var testData: Dictionary<String,AnyObject> = // a dictionary of known key/values // I want the return value from this function to be typed func getT

以下是我现在拥有的:

enum TestKeys: String {
    case login = "login"
    case username = "username"
}

var testData: Dictionary<String,AnyObject>  = // a dictionary of known key/values

// I want the return value from this function to be typed
func getTestObject(key: TestKeys) -> AnyObject! {
    if let obj: AnyObject = testData[key.rawValue] {
        return obj
    } else {
        assertionFailure("We cannot find \(key.rawValue) in our testData")
        return nil
    }
}
枚举测试键:字符串{ case login=“login” case username=“username” } var testData:Dictionary=//已知键/值的字典 //我希望键入此函数的返回值 func getTestObject(键:TestKeys)->AnyObject!{ 如果让obj:AnyObject=testData[key.rawValue]{ 返回obj }否则{ assertionFailure(“我们无法在测试数据中找到\(key.rawValue)) 归零 } }
我预先知道字典中的键和特定值类型。我想做的是将一个类型与每个键相关联,这样当我访问字典的内容时,就可以得到类型化的返回值

何时“将类型与每个键关联”?在编写
getTestObject
之前或之后?在之前。我希望能够从我的字典中提取任何对象,并让我的提取函数返回正确的类型,而不是
AnyObject
。因此您可以说
getTestString(key)
getTestInt(key)
,因为您的代码事先知道它将是哪种类型,对吗?我希望将类型绑定到枚举,因此,有一个方法将根据您传入的枚举返回不同的类型。这将需要Swift中无法获得的类型。您可以尝试一个通用函数,如
getTestObject(key:TestKeys)