什么是CGSUpdateManager,为什么抱怨?

时间:2015-02-02 12:32:01

标签: cocoa swift nsviewcontroller

我正在使用我的用户界面,试图通过一大堆嵌套的NSSplitViewControllers,NSTabViewControllers等来导航我的数据。

在某些时候,我收到这些错误警告。我不知道他们来自哪里,甚至在哪里看。该应用似乎工作正常。

什么是CGSUpdateManager,为什么抱怨?

void CGSUpdateManager::log() const: conn 0xdbbb token 0x2ffffffffffdc78 Backtrace (at 5543.57):
void CGSUpdateManager::log() const:  0   CoreGraphics                        0x00007fff85db9215 CGSBacktraceCreate + 59
void CGSUpdateManager::log() const:  1   CoreGraphics                        0x00007fff85dd8688 _ZN16CGSUpdateManager14disable_updateEv + 84
void CGSUpdateManager::log() const:  2   AppKit                              0x00007fff897f3de5 -[NSWindow disableScreenUpdatesUntilFlush] + 127
void CGSUpdateManager::log() const:  3   AppKit                              0x00007fff897b3250 -[NSView _gainedLayerTreeHostAncestor] + 385
void CGSUpdateManager::log() const:  4   AppKit                              0x00007fff897b30ae -[NSView _recursiveGainedLayerTreeHostAncestor] + 27
void CGSUpdateManager::log() const:  5   AppKit                              0x00007fff897b767a -[NSScroller _recursiveGainedLayerTreeHostAncestor] + 103
void CGSUpdateManager::log() const:  6   AppKit                              0x00007fff89a1ea56 -[NSScroller _setSurfaceBacked:] + 213
void CGSUpdateManager::log() const:  7   AppKit                              0x00007fff8998424f -[NSScrollView setScrollerStyle:] + 304
void CGSUpdateManager::log() const:  8   AppKit                              0x00007fff8a01bf27 +[NSScrollerImpPair _updateAllScrollerImpPairsForNewRecommendedScrollerStyle:] + 426
void CGSUpdateManager::log() const:  9   CoreFoundation                         0x00007fff914b5cbc __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 12
void CGSUpdateManager::log() const:  10  CoreFoundation                      0x00007fff913a71b4 _CFXNotificationPost + 3140
void CGSUpdateManager::log() const:  11  Foundation                          0x00007fff917feea1 -[NSNotificationCenter postNotificationName:object:userInfo:] + 66
void CGSUpdateManager::log() const:  12  CoreFoundation                      0x00007fff9141754c __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 12
void CGSUpdateManager::log() const:  13  CoreFoundation                      0x00007fff91409655 __CFRunLoopDoBlocks + 341
void CGSUpdateManager::log() const:  14  CoreFoundation                      0x00007fff91409196 __CFRunLoopRun + 1814
void CGSUpdateManager::log() const:  15  CoreFoundation                      0x00007fff91408838 CFRunLoopRunSpecific + 296
void CGSUpdateManager::log() const:  16  HIToolbox                           0x00007fff8f30743f RunCurrentEventLoopInMode + 235
void CGSUpdateManager::log() const:  17  HIToolbox                             0x00007fff8f3071ba ReceiveNextEventCommon + 431
void CGSUpdateManager::log() const:  18  HIToolbox                           0x00007fff8f306ffb _BlockUntilNextEventMatchingListInModeWithFilter + 71
void CGSUpdateManager::log() const:  19  AppKit                              0x00007fff897376d1 _DPSNextEvent + 964
void CGSUpdateManager::log() const:  20  AppKit                              0x00007fff89736e80 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 194
void CGSUpdateManager::log() const:  21  AppKit                              0x00007fff8972ae23 -[NSApplication run] + 594
void CGSUpdateManager::log() const:  22  AppKit                              0x00007fff897162d4 NSApplicationMain + 1832
void CGSUpdateManager::log() const:  23  Well                                0x0000000100019422 top_level_code + 34
void CGSUpdateManager::log() const:  24  Well                                0x000000010001945a main + 42
void CGSUpdateManager::log() const:  25  libdyld.dylib                       0x00007fff85b7b5c9 start + 1

2 个答案:

答案 0 :(得分:2)

当我升级到El Capitan时,我开始看到同样的问题。

我最终将它追溯到我的代码库中的某个深层,之前没有引起任何问题...我有一个流浪的电话:

[NSGraphicsContext restoreCurrentContext];

之前这是一个问题...确保平衡这些调用...尤其是在早期返回的函数中!

[NSGraphicsContext saveCurrentContext];
[NSGraphicsContext restoreCurrentContext];

类似于CGContextSaveGState(ctx); CGContextRestoreGState()

答案 1 :(得分:0)

确保在viewDidLoad,viewWillAppear和viewWillDisappear中调用super。