如何将 Swift 数组转换为 NSArray?

问题描述 投票:0回答:2

我有以下课程

class Game {
    // An array of player objects
    private var playerList: [Player]?
}

我想通过playerList进行枚举;这需要

import 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
swift casting nsarray
2个回答
7
投票

您不需要强制转换为

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
}

4
投票

你不能将可选数组转换为 NSArray,你必须先解开数组。您可以通过测试来做到这一点,如下所示:

if let playerList = playerList {
    let list:NSArray = playerList
}
© www.soinside.com 2019 - 2024. All rights reserved.