Looping durch NSMutableArray in Swift

8

Wie kann ich in Swift ein NSMutableArray durchsuchen? Was ich versucht habe:

%Vor%

Das Array enthält Objekte aus der Klasse: Vehicle

%Vor%

Ich kann den obigen Code nicht ausführen, ohne dass der Compiler mir sagt, dass registration nicht zu AnyObject gehört. An dieser Stelle nahm ich an, dass das war, weil ich der for-Schleife nicht gesagt hatte, welcher Typ von Klasse item gehört. Also habe ich den Code geändert:

%Vor%

Nun beschwert sich der Compiler über Downcasting ... Wie kann ich einfach Zugriff auf die benutzerdefinierte Registrierungseigenschaft erhalten, während ich durch das Array von Fahrzeugen schlendere?

    
jskidd3 08.02.2015, 13:06
quelle

3 Antworten

23

Das sollte funktionieren:

%Vor%     
D Nagy 07.08.2015, 16:10
quelle
11

Wie Romain vorgeschlagen hat, können Sie das Swift-Array verwenden. Wenn Sie weiterhin NSMutableArray verwenden, können Sie Folgendes tun:

%Vor%

oder, wenn Sie wissen, dass es nur Vehicle Objekte sind, können Sie es auspacken:

%Vor%

oder, wie DNagy vorgeschlagen hat:

%Vor%

Offensichtlich ist es, wenn möglich, die Frage, ob Sie NSMutableArray zurückziehen und stattdessen Array<Vehicle> (aka [Vehicle] ) verwenden können. Also statt:

%Vor%

Sie können:

%Vor%

Dann können Sie Dinge tun wie:

%Vor%

Manchmal bleiben wir bei Objective-C-Code, der NSMutableArray -Objekte zurückgibt, aber wenn dieser NSMutableArray in Swift erstellt wurde, ist es wahrscheinlich besser, stattdessen Array<Vehicle> zu verwenden.

    
Rob 08.02.2015 16:14
quelle
3

NSMutableArray kommt aus der Objective-C-Welt. Jetzt können Sie Generika und stark typisierte Arrays wie folgt verwenden:

%Vor%     
Romain 08.02.2015 13:08
quelle

Tags und Links