Swift-如何将Swift数组转换为NSArray?
我有以下课程Swift-如何将Swift数组转换为NSArray?,swift,casting,nsarray,Swift,Casting,Nsarray,我有以下课程 class Game { // An array of player objects private var playerList: [Player]? } 我想通过剧作家来列举;这需要导入Foundation,然后将其强制转换为NSArray;但它总是抱怨它不能转换它 func hasAchievedGoal() { if let list:NSArray = playerList { } for (index,el
class Game {
// An array of player objects
private var playerList: [Player]?
}
我想通过剧作家来列举;这需要导入Foundation
,然后将其强制转换为NSArray
;但它总是抱怨它不能转换它
func hasAchievedGoal() {
if let list:NSArray = playerList {
}
for (index,element) in list.enumerate() {
print("Item \(index): \(element)")
}
}
错误:
无法将类型“[Player]”的值转换为指定的类型“NSArray”
我试过:
if let list:NSArray=playerList as NSArray
我做错了什么
谢谢您无需强制转换到
NSArray
即可枚举:
if let list = playerList {
for (index,value) in list.enumerate() {
// your code here
}
}
至于演员阵容,你应该这样做:
if let playerList = playerList,
list = playerList as? NSArray {
// use the NSArray list here
}
if let playerList = playerList{
let list:NSArray = playerList
}
您无法将可选数组转换为NSArray,必须首先展开该数组。您可以通过测试执行此操作,如下所示:
if let playerList = playerList,
list = playerList as? NSArray {
// use the NSArray list here
}
if let playerList = playerList{
let list:NSArray = playerList
}
如果我执行
如果让list=self.playerOrderList为?NSArray{
上面写着;从“[Player]”到不相关的类型“NSArray”的转换总是失败
是的,我忘了先打开可选的,在手机上键入这个,无法测试代码。更新答案。已接受。你的答案按预期工作。非常感谢