【问题标题】:Swift - Array Filter not removing objectsSwift - 数组过滤器不删除对象
【发布时间】:2017-05-19 15:13:43
【问题描述】:
我有一个字符串数组,如图所示:
我还有一个对象数组,其中包含:
当我运行以下行时:
let filterNo = self.responseObjs.filter({!formItemIds.contains(String(describing: $0.formItemId))})
我希望filterNo 为空,因为所有formItemIds 都包含在数组中。但是,它不会删除任何项目。我错过了一些基本的东西吗?
【问题讨论】:
标签:
ios
arrays
swift
filter
swift3
【解决方案1】:
从String 的init 中删除describing,并使用Nil-Coalescing Operator 和$0.formItemId 来展开可选。
let filterNo = self.responseObjs.filter({!formItemIds.contains(String($0.formItemId ?? 0))})
您没有得到过滤的数据,因为您的 formItemId 属性是可选的,并且使用 String(describing: $0.formItemId) 会为您提供类似 Optional(98) 的输出