2009-10-20 18 views
5

私のアプリケーションを実行している間に(私はこのカスタムエラーが発生します。何が起こっているのか理解する)。"kCGErrorIllegalArgument:CGSUnionRegionWithRect:無効な領域"を理解する助けが必要

<Error>: kCGErrorIllegalArgument: CGSUnionRegionWithRect : Invalid region 
<Error>: kCGErrorFailure: Set a breakpoint @ CGErrorBreakpoint() to catch 
     errors as they are logged. 

私はこのブレークポイントを設定し、このスタックを取得します。どのスタックフレームも自分のコードではありませんが、確かNSViewのdrawRectをオーバーライドしたことがあります。

何が起こっているかについてこれまでに見たことがありますか?

#0 0x94bee5f2 in CGErrorBreakpoint() 
#1 0x94c831d8 in CGSGlobalErrorv() 
#2 0x94a64b61 in CGSUnionRegionWithRect() 
#3 0x912a2a70 in -[NSRegion addRegion:]() 
#4 0x912a28c1 in -[NSWindow _setNeedsDisplayInRegion:]() 
#5 0x911f3548 in -[NSWindow _absorbDeferredNeedsDisplayRegion]() 
#6 0x911f2113 in -[NSView _sendViewWillDrawInRect:clipRootView:suppressRecursion:]() 
#7 0x91154ee9 in -[NSView displayIfNeeded]() 
#8 0x9111e292 in -[NSWindow displayIfNeeded]() 
#9 0x9114f764 in _handleWindowNeedsDisplay() 
#10 0x9408eb02 in __CFRunLoopDoObservers() 
#11 0x9404b65d in __CFRunLoopRun() 
#12 0x9404ad34 in CFRunLoopRunSpecific() 
#13 0x9404ab61 in CFRunLoopRunInMode() 
#14 0x97984fec in RunCurrentEventLoopInMode() 
#15 0x97984da3 in ReceiveNextEventCommon() 
#16 0x97984c28 in BlockUntilNextEventMatchingListInMode() 
#17 0x91125c95 in _DPSNextEvent() 
#18 0x9112550a in -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:]() 
#19 0x910e769b in -[NSApplication run]() 
#20 0x910df735 in NSApplicationMain() 
#21 0x00002a4f in main (argc=0x1, argv=0xbffff4d4) at 
        /Users/me/Code/myapp/src/main.m:19 
+0

エラーが発生している場所にコードを投稿すると便利です。 –

+0

私はそれが起こっているのか分かりません。私のコードはスタックトレースにありません。 – nall

答えて

3

を却下すること セレクタ

  • 、最終的に[NSApp endSheet]
  • [sheet close];私は、非メインスレッドから表示するNSProgressIndicatorを要求したが判明しました。私がこれを取り除くと、メッセージは消え去った。

  • 4

    私は最近、コンソールに全く同じメッセージを表示しました。
    私の場合は、進捗インジケータを間違った方法で更新していました。
    進行状況インジケータがシートに表示されていて、シートを正しく外していませんでした。 NSSheetを表示したときに2回目にエラーが表示されるbeginSheet
    NSSheetを使用していますか?それが働いていた私にとっては

    1. beginSheetdidEndSelectorを渡します。シート
    +0

    これは有望ですね。私は実際に進捗インジケータを更新していますが、NSSheet(明示的にとにかく)を使用していません。 – nall

    +0

    問題をどのようにデバッグしましたか? – nall

    +0

    偶然見つけました。最初は私のカスタム描画コードを疑っていました。しかし、結局それは欠けていたendSheetでした。 シートと進行状況インジケータが、アプリケーション実行で最初に表示されたときに正しく機能していました。しかし、その後の呼び出しごとに「無効な領域」というメッセージが書き込まれ始めました。 –