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)
。