NSSet没有下标成员

时间:2016-10-09 15:39:13

标签: swift uitableview nsset

我有一个CoreData对象,其关系为NSSet。我正在尝试使用它作为我的dataSource,但获得以下

    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

    let cell = playerTableView.dequeueReusableCellWithIdentifier("Cell")! as UITableViewCell
    cell.textLabel?.text = self.game.players[indexPath.row]
    return cell
}

如何在tableView中使用我的NSSet,我相信这将是无序的,所以每次都有可能不同,所以我怎么能订购这套呢?

3 个答案:

答案 0 :(得分:7)

您可以使用let orderedPlayers = (game.players!.allObjects as! [Player]).sort { $0.name < $1.name } 从集合中获取数组,然后对对象进行排序。

Set<Player>

如果您将该集声明为本机Swift类型allObjects - CoreData也支持Swift类型 - 您甚至可以省略类型转换和let orderedPlayers = game.players!.sort { $0.name < $1.name }

from tensorflow.contrib import learn
regressor = learn.TensorFlowEstimator()

答案 1 :(得分:0)

我就这样做了:

for player in game.players! {
        orderedPlayers.append(player as! Player)
    }
    orderedPlayers.sortInPlace({ $0.name < $1.name })

答案 2 :(得分:0)

您可以像这样向 game 核心数据类添加子脚本:

subscript(index: Int) -> Player? {
    let descriptor = NSSortDescriptor(key: "name", ascending: true)
    let orderedPlayerArray = players?.sortedArray(using: [descriptor])
    let playerWhereIndex = orderedPlayerArray?[index]
    return playerWhereIndex as? Player
}