Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在iOS Swift中使用过滤器删除字典中的元素_Ios_Swift_Dictionary_Filter - Fatal编程技术网

如何在iOS Swift中使用过滤器删除字典中的元素

如何在iOS Swift中使用过滤器删除字典中的元素,ios,swift,dictionary,filter,Ios,Swift,Dictionary,Filter,我有一个类似这样的字典,我想删除*所有包含stock=0的元素 variations = { "64FB5468-96E9-41A4-A779-3FB57FF1296B" = { price = 10; sku = 123456; stock = 1; volume = 1L; }; "A5EDB714-3D39-42DA-9A5C-2392D39C3AEB" =

我有一个类似这样的字典,我想删除*所有包含stock=0的元素

    variations =     {
    "64FB5468-96E9-41A4-A779-3FB57FF1296B" =         {
        price = 10;
        sku = 123456;
        stock = 1;
        volume = 1L;
    };
    "A5EDB714-3D39-42DA-9A5C-2392D39C3AEB" =         {
        price = 20;
        sku = 254648;
        stock = 0;
        volume = 2L;
    };
    "BCA98B51-B058-4ABE-9010-54B080B819FB" =         {
        price = 30;
        sku = 284964;
        stock = 0;
        volume = 3L;
    };
};
我使用了下面的代码,但是,它在展开错误时返回find nil。如何正确删除字典中有0个库存的字典?kSTOCK是字符串股票的常数

    let filterAllItems = self.allItems.filter({(($0.variations as AnyObject)[$0] as! [String:Any])[kSTOCK] as! Int > 0})
假设allItems是一个[String:Any]字典,创建变体的可变副本,过滤对象,删除找到的键的值,并将字典重新分配给allItems


您的问题模棱两可:是要删除一个元素,还是要删除与条件匹配的所有元素?那个对象是什么类型的,是因为.variations而产生的结构还是字典?UUID键为:[String:Int]或[String:Any]的字典的声明类型是什么?您好,很抱歉造成混淆。我想删除所有符合条件的元素。在这种情况下,变体词典中应该只剩下一本词典。带有UUID键的字典类型为[String:Any]。
if var variations = allItems["variations"] as? [String:[String:Any]] {
    let allItemsWithStock0 = variations.filter({($0.value["stock"] as? Int) == 0})
    for (key, _) in allItemsWithStock0 {
        variations.removeValue(forKey: key)
    }
    allItems["variations"] = variations
}