我有一个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,我相信这将是无序的,所以每次都有可能不同,所以我怎么能订购这套呢?
答案 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
}