Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

NSSet has no subscript members

I have a CoreData object that has an relationship that is NSSet. I'm trying to use this as my dataSource, but getting the following

    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
}

How do I use my NSSet in a tableView and I believe this would be unordered so potentially different each time, so how could I order this set?

like image 595
Jonnny Avatar asked Oct 09 '16 15:10

Jonnny


1 Answers

You can use allObjects to get an array from the set and sort the objects afterwards.

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

If you declare the set as native Swift type Set<Player> – CoreData supports also Swift types – you can even omit the type cast and allObjects:

let orderedPlayers = game.players!.sort { $0.name < $1.name }
like image 162
vadian Avatar answered Oct 29 '22 00:10

vadian