加载单元格之前过滤内容

时间:2019-12-25 07:53:37

标签: swift filter protocols

我获得了在加载单元格之前需要过滤的数据模型。具有以下结构:

struct Food: Decodable {
 let title: String?
 let content: [Category]?
}

struct Category: Decodable {
 let title: String?
 let items: [FoodItem]?
}

struct FoodItem: Decodable {
 let title: String?
 let image: URL?
 let summary: String?
}

我将它们加载到UICollectionView上。我只需要包含titleimagesummary的内容。我可以用项目过滤类别。如何在整个Food数据模型中传播。从技术上讲,我可以for进行循环。我想知道是否可以向每个模型添加通用协议/功能以实现相同的功能。

使用

过滤项目
var filteredItem: Bool {
   return title != nil && summary != nil && image != nil
}

1 个答案:

答案 0 :(得分:0)

基本上,您正在寻找的是filter(_:)方法,您可以这样使用:

我认为您有一个Food数组,因此您希望对其进行过滤,因为每种食物的content[Category])必须包含items({ {1}})具有非null属性:

[FoodItem]