[英]Remove values from dictionary in iOS swift
我有这样的JSON对象:
The Result {
shops = ({
date = "2015-07-22T14:14:48.867618";
"num_items" = 0;
score = "-1";
"total_spend" = 0;
},
{
date = "2015-07-22T14:17:03.713194";
"num_items" = 1;
score = 5;
"total_spend" = "1.85";
});
}
和我的代码:
let dict = result as! NSDictionary
var mutDict: NSMutableDictionary = dict.mutableCopy() as! NSMutableDictionary
for (key, value) in mutDict {
for i in 0..<backendArray.count {
if value[i].objectForKey("num_items") === 0
{
//delete that shop only
}
}
}
我要删除整个第一家商店及其所有内容,但不能删除第二家商店或所有商店。
我不想将其转换为数组,因为我不知道如何将其转换回数组。 数据需要仍然作为字典存储。 谢谢
字典中的键是shops
,它具有一个数组作为值。 因此,您实际上不是从字典中删除num_items == 0
的商店,而是从数组中删除(这可能是不可变的)。 因此,通过过滤旧数组来创建一个新数组,并更新字典中shops
的值,例如:
dict["shops"] = (dict["shops"] as NSArray?)?.filter { (shop: Dictionary) in
(shop["num_items"] as NSNumber?)?.integerValue > 0
}
(验证类型检查并根据需要进行强制转换;您提供的代码不是独立的,因此无法直接在操场上进行测试。)
因此,请使用NSMutableDictionary
方法removeObjectForKey
。 但是,当您删除条目时,您将需要打破for循环。
let dict = result as! NSDictionary
var mutDict: NSMutableDictionary = dict.mutableCopy() as! NSMutableDictionary
dictLoop: for (key, value) in mutDict {
for i in 0..<backendArray.count {
if value[i].objectForKey("num_items") === 0
{
//delete that shop only
mutDict.removeObjectForKey(key)
continue dictLoop
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.