我已经创建了自己的 Struct 对象,该对象是从 Photos 框架填充的,其中包含图像的每个“时刻”以及其他元数据。
struct MomentImage {
var momentNo : Int
var index : Int
var image : UIImage
}
我想填充一个 tableView,拆分为:
- 部分,映射到
momentNo
- 单元格,映射到
index
在 tableView(cellForRowAt indexPath)
中,我打印了:
print("location:\(indexPath.section) and\(indexPath.row)")
但是 Section 值只打印“0”。我希望我的打印语句出现在这个表中的所有部分(根据我的测试数据,这实际上是 13 个部分)
如何从我的 var moments = [MomentImage]
数组中过滤/检索这两个索引处的对象...
使用 array.filter { }
似乎是最明显的方法。如何在同一调用中传入第二个属性以进行检查(即 momentNo 和索引)?
let filteredassets = assets.filter { $0.momentNo == indexPath.section }
是我当前的代码。
请注意,图像需要是可编码的,因此从 PHImageManager 提取到本身应该是可编码的 Struct 中的不同 UIImage。
最佳答案
由@Vicaren 提供,在第一个参数转换为 2-property IF AND 语句后应用 &&
$0
仍然可供选择,只需选择另一个可用的属性进行测试。
我自己的示例结果:
let filteredassets = assets.filter { $0.momentNo == indexPath.section && $0.index == indexPath.row }
关于swift - 结构数组的过滤/搜索功能,在 tableView 中显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57162171/