[英]How to obtain a String from a dictionary and make sure it is not null? (Swift / iOS)
如何從Swift中的鍵從字典(也可以為null)獲取值? 返回值不能為null(如果字典中沒有該值,則應將其填充為““””)
示例代碼:
func getValue(data:[String:AnyObject], key:String!) -> String! {
guard let value:String! = data[key] else {
return ""
}
return value
}
上面的代碼無法生成。
容易得多:
return data [key] as? String ?? "";
(感謝Thilo)但是,當您知道方法返回字符串時,為什么要調用方法“ getValue”? 您的方法名稱應表示該方法的作用。 您的方法從字典中返回一個字符串或一個空字符串。 稱它為getStringOrEmpty怎么樣?
您還應該考慮以下情況:在來自JSON的字典中,該值可以為null,可以為數字,甚至可以為數組。 您應該確定在這些情況下要做什么。 如果該值不是字符串,則至少要添加一些調試代碼。
怎么樣
func getValue(data:[String:Any], key:String) -> String {
guard let value = data[key] as? String else {
return ""
}
return value
}
如果鍵不存在或不是字符串,則將返回空字符串。
請注意,我從AnyObject
更改為Any
因為字符串不是對象。
如果需要,您也可以將data
和key
設為可選:
func getValue(data:[String:Any]?, key:String?) -> String {
guard let k = key, let value = data?[k] as? String else {
return ""
}
return value
}
試試看
func getValue(data:[String:AnyObject], key:String!) -> String! {
guard let value:String! = data[key] as! String else {
return ""
}
return value
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.