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”的转换总是失败
是的,我忘了先打开可选的,在手机上键入这个,无法测试代码。更新答案。已接受。你的答案按预期工作。非常感谢