【发布时间】:2015-10-27 18:35:39
【问题描述】:
如何通过一个或多个标志过滤一组自定义对象?
let flags = ["New product", "Season 2014", "Season 2015", "Product available"]
一个或多个静态标志很容易:
let filteredArray = myCustomObjectsArray.filter() { $0.isNew == true }
let filteredArray = myCustomObjectsArray.filter() { $0.isNew == true && $0.season.rangeOfString("14") && $0.season.rangeOfString("15") && $0.isAvailable }
但是如果标志是动态的,即标志数组是通过用户点击表格视图的单元格来创建的呢?
其他问题是在 `filter() { condition1 && condition2 etc.} 中尝试连接多个条件时出错。 “表达很复杂,需要在合理的时间内解决……”。
所以,flags 数组是用户选择的(只是来自 tableview 单元格的标题)。如果标志数组是 ["New product", "Season 2015"],我想过滤 .isNew 和 .season.rangeOfString("15") 例如。所以我是按属性而不是按字符串排序的。
【问题讨论】:
-
您确实应该提供更准确地代表您的问题的代码,很难完全理解您在这里要完成的工作。您似乎需要使用
flags数组来过滤myCustomObjectsArray数组。目前我们只能假设如何您想要过滤,您是否尝试使用flags数组中的字符串根据对象的season使用rangeOfString进行过滤?或者是别的什么?请更具体。 -
好的。我发布了一些示例来代表我想要的,但可能不清楚。对此感到抱歉。所以.. flags 数组是用户选择的(只是来自 tableview 单元格的标题)。如果标志数组是 ["New product", "Season 2015"],我想过滤 .isNew 和 .season.rangeOfString("15") 例如。所以按属性而不是按字符串排序。
标签: ios arrays swift filtering