我该如何将最初声明为任何对象容器的数组转换为字符串(或其他任何对象)数组? 示例:
var array: [Any] = []
.
.
.
array = strings // strings is an array of Strings
我收到一个错误信息:“无法将字符串类型分配给任何类型”
我该怎么办?
一旦变量被声明,就无法更改其类型,因此您必须创建另一个变量,例如通过使用 flatMap
将 Any
类型的项目安全地映射到 String
类型:
var oldArray: [Any] = []
var newArray: [String] = oldArray.flatMap { String($0) }
已更新至Swift 5
var arrayOfAny: [Any] = []
var arrayOfStrings: [String] = arrayOfAny.compactMap { String(describing: $0) }
var arr: [Any] = []
var strs = [String]()
arr = strs.map {$0 as! [String]}
[String]
。这真的有必要吗?而且我想你是指strs.map
而不是arr.map
? :) - Eendje声明数据并将其读入变量中,这样做实在太烦人了。我已经决定将数据声明在pList文件中,然后简单地读取它。
你可以使用`contentsOfFile`。
这是一个不错的解决方案链接:https://stackoverflow.com/a/60804155/1058199 `