2016-11-17 4 views
0

Ich habe zwei ArrayWie NSArray in Swift Array in schnellen 3

var arr1 = [NSArray]() 
var arr2 = [String]() 

Und ich möchte konvertieren NSArray in String Array Ich verwende

arr2 = arr1 wie konvertieren! [Zeichenfolge]

Aber es gibt mir eine Fehlermeldung: -

'NSString' is not a subtype of 'NSArray' 

Gibt es eine andere Methode zu konvertieren?

+0

arr1 ist 'Array ' (schnelle Array von NSArray), nicht 'NSArray' –

+0

Wie kann ich konvertieren können Sie bitte vorschlagen? –

+0

Sie sollten zuerst über die schnelle Syntax lesen ... – Tj3n

Antwort

6
var arr1 = [NSArray]() 

ist eine schnelle Reihe von NSArray. Sie verwenden falsche Syntax für NSArray

Um NSArray zu schnellen Array

Verwenden Sie die richtige Syntax zu konvertieren:

var arr1 = NSArray(objects: "a","b","c") 

var objCArray = NSMutableArray(array: arr1) 

if let swiftArray = objCArray as NSArray as? [String] { 

    // Use swiftArray here 
    print(swiftArray) 
} 

Es druckt

["a", "b", "c"] 

andere Art und Weise

let swiftArray: [String] = objCArray.flatMap({ $0 as? String }) 

kein Zwangsgießen erforderlich.