В моем проекте (MacOS, Swift 4) я получаю эту ошибку: "Не удается подписать значение типа "[String: String]" индексом типа "NSUserInterfaceItemIdentifier" при попытке для установки NSTableViewDataSource. Он отлично работал в Swift 3, но когда я обновил проект до Swift 4, он перестал работать.
Итак, что я пытаюсь сделать, это показать «tableViewData» в «tableView», используя идентификатор ячейки.
Это мой код:
import Cocoa
class ViewController: NSViewController {
@IBOutlet weak var tableView:NSTableView!
let tableViewData = [["picID":"default","nameID":"default","amount":"1","address":"default"],["picID":"default","nameID":"default","amount":"1","address":"default"]]
override func viewDidLoad() {
super.viewDidLoad()
self.tableView.delegate = self as? NSTableViewDelegate
self.tableView.dataSource = self
}
}
extension ViewController:NSTableViewDataSource{
func numberOfRows(in tableView: NSTableView) -> Int {
return tableViewData.count
}
func tableView(_ tableView: NSTableView, objectValueFor tableColumn: NSTableColumn?, row: Int) -> Any? {
return tableViewData[row][(tableColumn?.identifier)!] // This is where the error appears
}
}
Есть идеи, что изменилось в Swift 4?
identifier
, чтобы увидеть что изменилось в Swift 4 - person vadian   schedule 03.11.2017