2009-10-20 5 views
5

Während ich meine Anwendung (was ein gutes Stück von benutzerdefinierten Zeichnung tut) bekomme ich diesen Fehler (es passiert ein gutes Stück ohne beobachtbare Nebenwirkungen, aber ich würde gerne verstehe, was passiert.Brauchen Sie Hilfe zu verstehen "kCGErrorIllegalArgument: CGSUnionRegionWithRect: Ungültige Region"

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

Also habe ich diesen Haltepunkt gesetzt und diesen Stapel bekommen. Keiner der Stack-Frames ist mein Code, obwohl ich in einigen Fällen NSViews drawRect übersteuert habe.

Hat jemand schon einmal gesehen oder haben Einblick darüber, was geschieht?

#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

Es wäre wirklich hilfreich, wenn Sie auch den Code posten, wo der Fehler auftritt. –

+0

Ich habe keine Ahnung, wo es passiert. Keiner meiner Code ist in der Stack-Trace. – nall

Antwort

3

Es stellt sich heraus, entlassen, ich die NSProgressIndicator anfordernden wurde von einem nicht-Haupt-Thread angezeigt werden soll. Sobald ich das entfernte, gingen die Nachrichten weg.

4

Ich hatte vor kurzem genau die gleiche Nachricht in der Konsole.
In meinem Fall habe ich eine Fortschrittsanzeige falsch aktualisiert.
Meine Fortschrittsanzeige wurde auf einem Blatt angezeigt und ich habe das Blatt nicht korrekt ausgeblendet. Die Fehler traten immer beim zweiten Mal auf, als ich das NSSheet mit beginSheet
anzeigte. Verwenden Sie ein NSSheet?
Für mich war es an:

  1. ein didEndSelector zu beginSheet passieren.
  2. A [sheet close]; innerhalb dieser Selektor
  3. und schließlich ein [NSApp endSheet] das Blatt
+0

Das klingt vielversprechend. Ich aktualisiere tatsächlich einen Fortschrittsanzeiger, verwende aber kein NSSheet (explizit trotzdem). – nall

+0

Wie haben Sie Ihr Problem debuggen, BTW? – nall

+0

Ich habe es zufällig gefunden. Zuerst ahnte ich meinen benutzerdefinierten Zeichnungscode. Aber am Ende war es das fehlende endSheet. Meine Blatt- und Fortschrittsanzeige funktionierte ordnungsgemäß, als sie zum ersten Mal in einem Anwendungslauf angezeigt wurde. Aber es fing an, die Meldung "Ungültige Region" für jeden nachfolgenden Anruf zu schreiben. –