我有一个 CoreData 对象,它的关系是 NSSet 。我试图用它作为我的数据源,但得到以下

    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 并且我相信这将是无序的,所以每次都可能不同,那么我如何订购这个集合?

最佳答案

您可以使用 allObjects 从集合中获取数组,然后对对象进行排序。

let orderedPlayers = (game.players!.allObjects as! [Player]).sort { $0.name < $1.name }

如果您将集合声明为原生 Swift 类型 Set<Player> – CoreData 也支持 Swift 类型 – 您甚至可以省略类型转换和 allObjects :
let orderedPlayers = game.players!.sort { $0.name < $1.name }

关于swift - NSSet 没有下标成员,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39945378/

10-14 21:01