Swift - 使用另一个NSDictionary中的值更新NSDictionary数组
问题描述:
基本上,当出现视图时,我有一个NSarray
的dictionaries
作为JSON响应来使用。现在,我需要每隔几秒更换一组字典中的某个键的特定值,以便我可以用这些值连续更新字典数组,并在屏幕上显示一些实时数据集。Swift - 使用另一个NSDictionary中的值更新NSDictionary数组
例:这是字典的阵列我从后端获得
[
{item_id: 1001, name: "Apple", current_price: "$10"},
{item_id: 1009, name: "Orange", current_price: "$15"},
{item_id: 1004, name: "Mango", current_price: "$5"}
]
当前价格是一些东西,连续地变化,其数据我分别接收在NSDictionary
格式。
["1009": "$16", "1004": "$3", "1001": "$11"]
正如你可以看到新的NSDictionary
映射与item_id
目前的价格值。
我需要一种方法来确保当前价格从此NSDictionary
更新到字典数组,以便我可以重新使用该数组来重新加载我的UITableview
并显示更新的实时价格。
答
你可以这样说:
let items = [["item_id": 1001, "name": "Apple", "current_price": "$10"], ["item_id": 1009, "name": "Orange", "current_price": "$15"], ["item_id": 1004, "name": "Mango", "current_price": "$5"]]
let prices = ["1009": "$16", "1004": "$3", "1001": "$11"]
let updatedItems = items.map { itemDict -> [String: Any] in
var updatedItem = itemDict
if let idKey = itemDict["item_id"] as? Int {
prices["\(idKey)"].flatMap { updatedItem["current_price"] = $0 }
}
return updatedItem
}
+0
如果您需要任何解释 - 请随时问:) –
这是斯威夫特。你为什么使用'NSArray'和'NSDictionary'? – the4kman
@ the4kman我刚刚从objectiveC切换到Swift语言,认为我从这个角度来说是一个初学者。如果您可以编辑该问题以使其更加友好,那么您非常欢迎。 – Subso
您能否澄清您遇到的技术难题?是否将价格存储在一系列词典中,并且每次价格更新时都必须通过整个数组? – Baglan