2009-10-20 10 views
5

Podczas uruchamiania aplikacji (która wykonuje sporo niestandardowego rysunku) pojawia się ten błąd (dzieje się tak, że nie ma zauważalnych efektów ubocznych, ale chciałbym zrozumieć, co się dzieje).Potrzebujesz pomocy w zrozumieniu "kCGErrorIllegalArgument: CGSUnionRegionWithRect: Nieprawidłowy region"

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

Tak więc ustawiłem ten punkt przerwania i otrzymuję ten stos. Żadna z ramek stosu nie jest moim kodem, chociaż w niektórych przypadkach nadpisałem w rewersie NSView.

Czy ktoś to widział wcześniej lub ma wgląd w to, co się dzieje?

#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

Byłoby naprawdę pomocne, gdybyś również opublikował kod, w którym wystąpił błąd. –

+0

Nie mam pojęcia, gdzie to się dzieje. Żaden z mojego kodu nie znajduje się w śladzie stosu. – nall

Odpowiedz

3

Okazuje się, że było zainteresowanie w NSProgressIndicator do wyświetlania z nie głównego wątku. Po usunięciu wiadomości zniknęły.

4

Niedawno miałem dokładnie ten sam komunikat w konsoli.
W moim przypadku aktualizowałem wskaźnik postępu w niewłaściwy sposób.
Mój wskaźnik postępu został wyświetlony na arkuszu, a ja nieprawidłowo odrzuciłem arkusz. Błędy pojawiały się zawsze przy drugim wyświetleniu NSSheet z beginSheet
Czy używasz NSSheet?
Dla mnie to działało do:

  1. zdać didEndSelector do beginSheet.
  2. [sheet close]; w tym selektora
  3. i wreszcie [NSApp endSheet] oddalenie arkusz
+0

Brzmi obiecująco. W rzeczywistości aktualizuję wskaźnik postępu, ale nie używam NSSheet (jawnie tak czy inaczej). – nall

+0

W jaki sposób debugowałeś swój problem? – nall

+0

Znalazłem to przez przypadek. Najpierw podejrzewałem mój niestandardowy kod rysunkowy. Ale w końcu to był brakujący endSheet. Mój wskaźnik arkusza i postępu działał prawidłowo, gdy został po raz pierwszy wyświetlony w uruchomionym aplikacji. Ale zaczął pisać komunikat "Nieprawidłowy region" dla każdego kolejnego połączenia. –

Powiązane problemy