与NSTableView自动保存功能一起使用的列标识符必须符合NSCoding协议:(null)

时间:2016-01-06 20:14:45

标签: nstablecolumn

场景:
我将NSTableColumn传递给了一个函数,我从中切换了它的隐藏标志:

func process(tableColumn:NSTableColumn, purpose:PricingCommercialMenuItems) {
        switch purpose {
        case .RemoveColumn:
            tableColumn.hidden = true
...
}

Column identifiers used with NSTableView autosave feature must conform to NSCoding protocol: (null)
2016-01-06 12:08:27.191 Odyssey[3419:144864] (
    0   CoreFoundation                      0x00007fff90463ae2 __exceptionPreprocess + 178
    1   libobjc.A.dylib                     0x00007fff941e5f7e objc_exception_throw + 48
    2   CoreFoundation                      0x00007fff9046398d +[NSException raise:format:] + 205
    3   AppKit                              0x00007fff9781834d -[NSTableColumn setHidden:] + 287

如何使列标识符符合NSCoding?

或者......这是一个错误吗?

1 个答案:

答案 0 :(得分:0)

之前使用自己的NSTableColumn标识符创建了NSTableView。我瞥了几个标识符,看起来没问题

显然不是:我已经知道所有标识符必须是真正符合NSCoding标准的。所以也许有些标识符是错误的。

补救措施:我生成了一个新的String类型标识符/ NSTableColumn(覆盖任何现有标识符)。这就行了。