簡體   English   中英

如何從字典中獲取字符串並確保其不為null? (快速/ iOS)

[英]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因為字符串不是對象。

如果需要,您也可以將datakey設為可選:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM