我的macOS应用程序使用启用了“浮动组行”的NSTableView。这在我的测试Mac上没有问题。但是,我会定期收到用户的崩溃报告:
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'self.floatingGroupRowView should be equal to the given row view!'
是否有人知道此错误的条件?
崩溃日志的最后一部分看起来与此类似:
0 CoreFoundation 0x00007fff51db6ff3 __exceptionPreprocess + 147
1 libobjc.A.dylib 0x00007fff78992c76 objc_exception_throw + 48
2 CoreFoundation 0x00007fff51dbcda2 + [NSException raise:format:arguments:] + 98
3基础0x00007fff53ebb260 - [NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 192
4 AppKit 0x00007fff4f656e9f - [NSTableRowData _updateFloatingGroupRowView:row:] + 421
5 AppKit 0x00007fff4f4245db - [NSTableRowData _updateFrameRowView:row:] + 100
6 AppKit 0x00007fff4fd03fca __48- [NSTableRowData _doAutomaticRowHeightsForRows:] _ block_invoke.1004 + 47
7 AppKit 0x00007fff4f40eae2 - [NSTableRowData enumerateAvailableRowViewsUsingBlock:] + 139
8 AppKit 0x00007fff4fd03ede - [NSTableRowData _doAutomaticRowHeightsForRows:] + 274
9 AppKit 0x00007fff4fd07157 __59- [NSTableRowData _automaticRowHeightsUpdateVisibleRowViews] _block_invoke.1494 + 141
10 AppKit 0x00007fff4fd06d05 - [NSTableRowData _keepTopRowStable:andDoWorkUntilDone:] + 535
11 AppKit 0x00007fff4fd07075 - [NSTableRowData _automaticRowHeightsUpdateVisibleRowViews] + 161
12 AppKit 0x00007fff4f415d85 - [NSTableRowData updateVisibleRowViews] + 261
13 AppKit 0x00007fff4f5bf24e - [NSTableRowData prepareContentInRect:] + 106
14 AppKit 0x00007fff4f5bed46 - [NSTableView prepareContentInRect:] + 303
15 AppKit 0x00007fff4fbbf7b1 __38- [NSView _pullInExtraTilesForOverdraw] _block_invoke + 562
16 AppKit 0x00007fff4f484a19 - [NSView _performWorkOnTilesFromRect:renderedContentRect:maximumRect:scrollVelocity:handler:] + 1544
17 AppKit 0x00007fff4f4841f2 - [NSView _pullInExtraTilesForOverdraw] + 854
18 AppKit 0x00007fff4f483e6d - [NSView _doIdlePrefetch] + 37
不幸的是,这些崩溃日志并未始终指向我代码中的某一特定行。