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

标签 ios arrays swift nsarray

我有两个数组

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

我想将 NSArray 转换成字符串数组 我正在使用

arr2 = arr1 作为! [字符串]

但它给我错误:-

'NSString' is not a subtype of 'NSArray'

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

最佳答案

var arr1 = [NSArray]() 

是 NSArray 的快速数组。您对 NSArray

使用了错误的语法

为了将 NSArray 转换为 swift Array

使用正确的语法:

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.compactMap({ $0 as? String })

不需要强制转换。

关于ios - 如何在 swift 3 中将 NSArray 转换为 Swift 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40646756/

相关文章:

objective-c - 默认全屏播放 YouTube 视频

iOS 应用程序错误 - 无法将自身添加为 subview

ios - 将图标和名称从 TableviewController B 传递到 TableviewController A

swift - 带有 JSQMessageViewController 的选项卡栏

iphone - 将视频+生成的音频写入 AVAssetWriterInput,音频卡顿

java - 搜索具有多种数据类型的ArrayList

c - 无法将文件中的字符串读取到数组中以最终进行排序

javascript - 如何在 NodeJs 上创建一个包含 2 亿个元素的数组?

ios - UIImageView 没有专注于 tvOS

ios - 无法在前台接收 Firebase 的通知?