我很快就很乖。 (还有英文!对不起!)
在解码的json字典中检查null。
这里是搜索一些提示后的工作代码。 但我认为这段代码非常糟糕。
任何想法制作这个华丽的代码?
var v_desc = ""
var v_sword = ""
var v_sortk = 0
for (_, value) in api_result {
if let ch_descr = value["description"] as? String {
v_desc = ch_descr
} else {
v_desc = ""
}
if let ch_sword = value["search_word"] as? String {
v_sword = ch_sword
} else {
v_sword = ""
}
if let ch_sortk = value["sort_key"] as? Int {
v_sortk = ch_sortk
} else {
v_sortk = 0
}
self.cell_data.append(aps_tag(catg_UID: value["ctag_UID"] as! Int, set_code: value["set_code"] as! Int, title: value["title"] as! String, description: v_desc, search_word: v_sword, nums: value["nums"] as! Int, sort_key: v_sortk))
}
答案 0 :(得分:1)
华丽是主观的,但你可以使用nil-coalescing运算符(??
)使其更简洁:
for (_, value) in api_result {
let catg_UID = value["ctag_UID"] as! Int
let set_code = value["set_code"] as! Int
let title = value["title"] as! String
let nums = value["nums"] as! Int
let v_desc = value["description"] as? String ?? ""
let v_sword = value["search_word"] as? String ?? ""
let v_sortk = value["sort_key"] as? Int ?? 0
let aps_tag = aps_tag(catg_UID: catg_UID, set_code: set_code, title: title, description: v_desc, search_word: v_sword, nums: nums, sort_key: v_sortk)
self.cell_data.append(aps_tag)
}
另一件事:那些snake_case
变量和函数名称让我想起了很多C / C ++。对我来说看起来不太友好,但这是个人偏好。