tableViewSelectionDidChange не работает в Xcode 8

После обновления до MacOS Sierra, и, следовательно, для Xcode 8, tableViewSelectionDidChangeфункция больше не работает. Думаю, мой код верен.

func tableViewSelectionDidChange(_ notification: Notification) {

if let selectedRow = (notification.object as AnyObject).selectedRow {
    if ( selectedRow > -1 ) {
        selectedItem = data[selectedRow]
        if let nome = selectedItem?.value(forKey: "nome") as? String {
            nomeField.stringValue = nome
        } else {
            blankOutField(nomeField)
        }


override func viewDidLoad() {
    super.viewDidLoad()
    let appDelegate = NSApplication.shared().delegate as! AppDelegate
    managedContext = appDelegate.managedObjectContext
    tableView.delegate = self
    tableView.dataSource = self
    fetchDataAndRefreshTable()
}

func fetchDataAndRefreshTable() {
    let fetchRequest = NSFetchRequest<NSFetchRequestResult> (entityName: "CadastroPacientes")
    let sortDescriptor = NSSortDescriptor(key: "nome", ascending: true, selector: #selector(NSString.localizedStandardCompare(_:)))
    fetchRequest.sortDescriptors = [sortDescriptor]
    do {
        data = try managedContext!.fetch(fetchRequest) as! [NSManagedObject]
    } catch {
        Swift.print(error)
    }  
}

Я не могу найти решение, потому что кажется, что линия Не выбрана, ничего не происходит, когда я щелкаю линию в TableView.

Программа использует основные данные. Раньше все работало идеально.

1 ответ

  1. Изменить selectedRow > -1На selectedRow >= -1потому Binary operator '>' cannot be applied to operands of type Intчто …. Далее, Если вы можете изменить selectedItemна selectedRowэти основные ошибки, которые я получаю, когда я пытаюсь запустить ваш код