我在迁移到Swift 3时遇到错误.下面是出现错误的代码.
func getProfileFieldValue(_ formFields:NSMutableArray,keyValue:String) -> String {
for key in formFields{
if keyValue == key["name"] as! String{
return key["value"] as! String
}
}
return ""
}
Run Code Online (Sandbox Code Playgroud)
请提前帮助和感谢.
NSMutableArray 不提供任何类型信息,使用本机Swift数组
func getProfileFieldValue(_ formFields:[[String:Any]], keyValue: String) -> String {
for key in formFields {
if let value = key["name"] as? String, value == keyValue {
return key["value"] as! String
}
}
return ""
}
Run Code Online (Sandbox Code Playgroud)
或者如果词典仅包含String值
func getProfileFieldValue(_ formFields:[[String:String]], keyValue: String) -> String {
for key in formFields {
if let value = key["name"], value == keyValue {
return key["value"]!
}
}
return ""
}
Run Code Online (Sandbox Code Playgroud)
或者仍然更加迅速
func getProfileFieldValue(_ formFields:[[String:Any]], keyValue: String) -> String {
if let profileField = formFields.first(where { $0["name"] as? String == keyValue }) {
return profileField["value"] as! String
}
return ""
}
Run Code Online (Sandbox Code Playgroud)
最后是防水 - 永不崩溃的版本:
func getProfileFieldValue(_ formFields:[[String:Any]], keyValue: String) -> String {
guard let profileField = formFields.first(where: { $0["name"] as? String == keyValue }),
let value = profileField["value"] as? String else { return "" }
return value
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
66 次 |
| 最近记录: |