gpt4 book ai didi

swift3 - 无法使用 '[String : String]' 类型的索引为 'NSUserInterfaceItemIdentifier' 类型的值添加下标

转载 作者:行者123 更新时间:2023-12-01 16:04:38 26 4
gpt4 key购买 nike

在我的项目(MacOS、Swift 4)中,当我使用“NSUserInterfaceItemIdentifier”类型的索引时,出现以下错误:“无法使用“NSUserInterfaceItemIdentifier”类型的索引为“[String : String]”类型的值添加下标”我正在尝试设置 NSTableViewDataSource。 它在 Swift 3 中运行得很好,但是当我将项目更新到 Swift 4 时,它停止运行了。

所以我想做的是使用单元格 ID 在“tableView”中显示“tableViewData”。

这是我的代码:

    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 发生了什么变化吗?

最佳答案

NSUserInterfaceItemIdentifier 是一个结构类型。您应该调用.rawValue获取基础值(value):

tableViewData[row][(tableColumn?.identifier.rawValue)!]

关于swift3 - 无法使用 '[String : String]' 类型的索引为 'NSUserInterfaceItemIdentifier' 类型的值添加下标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47100742/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com