如何在swift 3中将NSArray转换为Swift数组

时间:2016-11-17 04:31:29

标签: ios arrays swift nsarray

我有两个数组

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

我想将NSArray转换为String Array 我正在使用

arr2 = arr1 as! [字符串]

但它给了我错误: -

'NSString' is not a subtype of 'NSArray'

还有其他方法可以转换吗?

1 个答案:

答案 0 :(得分:11)

var arr1 = [NSArray]() 

是NSArray的快速阵列。您使用的NSArray

语法错误

为了将NSArray转换为swift数组

使用正确的语法:

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

会打印

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

另一种方式

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

不需要强迫施法。