Swift - 数组过滤器不删除对象

时间:2017-01-05 06:53:22

标签: ios arrays swift filter swift3

我有一个字符串数组,如下所示:

enter image description here

我还有一个包含以下内容的对象数组:

enter image description here

当我运行以下行时:

let filterNo = self.responseObjs.filter({!formItemIds.contains(String(describing: $0.formItemId))})

我希望filterNo为空,因为所有formItemId都包含在数组中。但是,它不会删除任何项目。我错过了一些基本的东西吗?

enter image description here

1 个答案:

答案 0 :(得分:1)

describing的{​​{1}}移除init,并使用Nil-Coalescing OperatorString解包可选。

$0.formItemId

您没有收到过滤数据,因为您的let filterNo = self.responseObjs.filter({!formItemIds.contains(String($0.formItemId ?? 0))}) 属性是可选的,使用formItemId会为您提供String(describing: $0.formItemId)

之类的输出