내 프로젝트 (MacOS, Swift 4)에서 "다음과 같은 오류가 발생합니다. String : String] 'NSTableViewDataSource를 설정하려고 할 때'NSUserInterfaceItemIdentifier '유형의 인덱스를 사용합니다. 스위프트 3에서 제대로 작동했지만 프로젝트를 스위프트 4로 업데이트하면 작동이 멈췄습니다.'NSUserInterfaceItemIdentifier'유형의 인덱스가있는 '[String : String]'유형의 값을 첨자화할 수 없습니다.
그래서 내가 뭘 하려는지, 셀 id를 사용하여 "tableView"에 "tableViewData"를 표시하는 것입니다.
이 내 코드입니다 : 스위프트 4에서 변경 된 내용
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
}
}
어떤 생각?
힌트 : ⌥ 클릭 * – vadian