我有一个 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/