2017-01-05 21 views
0

ich ein Array von Strings haben, wie gezeigt:Swift - Array Filter nicht Entfernen von Objekten

enter image description here

I auch eine Reihe von Objekten, die enthalten:

enter image description here

Wenn ich laufen die folgende Zeile:

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

Ich erwarte, dass filterNo leer ist, da alle formItemId s im Array enthalten sind. Es entfernt jedoch keines der Elemente. Fehle ich etwas Grundlegendes?

enter image description here

Antwort

1

Entfernen Sie die describing vom init von String und verwenden Nil-Coalescing Operator mit $0.formItemId optional ausgepackt.

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

Sie sind nicht gefilterten Daten bekommen, weil Ihre formItemId Eigenschaft ist optional und mit String(describing: $0.formItemId) geben Sie eine Ausgabe wie Optional(98)

+0

ahh ... gearbeitet :) danke – Alan

+0

@Alan Welcome Kumpel :) –

Verwandte Themen