ios – 基于属性删除数组中的特定对象?

我有一系列的饮料配料,想要去除与饮料无关的那些,这是我的代码,但我无法弄清楚如果不符合标准,如何从数组中删除顶部.

我只能在索引路径中删除,如果我们添加更多浇头等,这可能会改变,所以看起来不准确吗?

for toppings in self.toppings {
            if self.selectedDrink.name == "Tea" {
                if toppings.limit == "C" {
                    self.toppings.remove(at: toppings)
                }
            }
        }

从根本上说,如果用户选择了茶,它会寻找限制咖啡的配料,然后我需要删除那些响应“C”属性的配件,但我怎么看?

谢谢您的帮助!

解决方法

您可以使用for循环进行就地删除,但这会很棘手,因为您需要迭代以避免干扰索引.

一种更简单的方法是过滤数组,并将其分配回toppings属性,如下所示:

toppings = toppings.filter {$0.limit != "C"}

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...