2016-11-17 1 views
0

Ich arbeite mit Swift 3 und Xcode.Wissen, ob ein Array einen Elementtyp enthält

Ich habe eine Klasse:

class H: SKSpriteNode {...} 

Und ein Array:

var array = [H]() 

Ich möchte mit der nodes(at:) Funktion überprüfen, an bestimmten Punkt, wenn es ein Element vom Typ H. Ich habe versucht, :

if nodes(at: myPoint).contains(H) 

Aber es funktioniert nicht, und ich verstehe das. Gibt es eine Möglichkeit zu wissen, ob die Arrays, die die nodes(at)-Funktion zurückgibt, ein Element aus der Klasse H enthält?

Und eine andere Frage, wie kann ich alle von der Funktion zurückgegebenen Knoten einchecken, wenn das Array einen Knoten mit einem bestimmten Namen enthält?

Antwort

3

Versuchen .filter({$0 is H}).count > 0

+0

Es funktioniert dank zu verwenden. Und .filter ({$ 0.name ist "etwas"}). Count> 0 würde auch funktionieren? – Drakalex

+3

Besser: '.contains {$ 0 ist H}' –

+0

Haben Sie ein Tutorial, das diese ganze $ 0 Sache erklärt? Ich habe diese Notation noch nie zuvor gesehen. Und laut Swift ist die richtige Syntax: .contains (wo: {$ 0 ist H}) – Drakalex

Verwandte Themen