How to convert NSArray into Swift Array in swift 3

22,558
var arr1 = [NSArray]() 

is a swift array of NSArray. You are using wrong syntax for NSArray

In order to convert NSArray to swift Array

Use the proper syntax:

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)
}

It will print

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

Another way

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

no forced casting required.

Share:
22,558
Aditya Raj Gupta
Author by

Aditya Raj Gupta

Updated on August 14, 2020

Comments

  • Aditya Raj Gupta
    Aditya Raj Gupta almost 4 years

    I have two array

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

    And I want to convert NSArray into String Array I am using

    arr2 = arr1 as! [String]

    But it giving me error :-

    'NSString' is not a subtype of 'NSArray'
    

    Is there any other method to convert?