【问题标题】:How to convert NSArray into Swift Array in swift 3如何在 swift 3 中将 NSArray 转换为 Swift Array
【发布时间】:2016-11-17 04:31:29
【问题描述】:

我有两个数组

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

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

arr2 = arr1 作为! [字符串]

但它给了我错误:-

'NSString' is not a subtype of 'NSArray'

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

【问题讨论】:

  • arr1 是 Array<NSArray>(NSArray 的 swift 数组),而不是 NSArray
  • 我如何转换你能建议吗?
  • 你应该先阅读一下 swift 语法...
  • arr1 是数组数组,而不是字符串数组。例如,如果 arr1 的第一个元素包含 [1, 2] 的 NSArray,第二个元素是 ["abc", "def"]。您希望 this 的字符串表示形式是什么?
  • Array(nsArray) 将 NSArray 转换为 [Any]

标签: ios arrays swift nsarray


【解决方案1】:
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.compactMap({ $0 as? String })

不需要强制转换。

【讨论】:

  • 不需要NSMutableArray,只要if let ar = arr1 as? [String] {就够了。
猜你喜欢
  • 2014-08-16
  • 1970-01-01
  • 2020-07-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多