in den Index setzen. (MacOS, Swift 4), bekomme ich diesen Fehler: "Kann keinen Wert vom Typ '[ String: String] 'mit einem Index vom Typ' NSUserInterfaceItemIdentifier '", wenn ich versuche, die NSTableViewDataSource zu setzen. Es funktionierte gut in Swift 3, aber als ich das Projekt zu Swift 4 aktualisierte, hörte es auf zu arbeiten.Kann einen Wert vom Typ '[String: String]' mit einem Index vom Typ 'NSUserInterfaceItemIdentifier' nicht
Also was ich versuche zu tun, ist die "TableViewData" in der "TableView" durch Verwendung von Zelle ID zu zeigen.
Dies ist mein Code:
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
}
}
Jede Idee, was in Swift 4 geändert wurde?
Hinweis: ⌥ Sie auf 'identifier' * zu sehen, was in Swift 4 * – vadian