I've just hit this too, and my best guess as to why it's so reproducible for me but this is the *only* mention that Google can find is that my window does trigger updates to one of its restorable values early in its lifetime. Unfortunately that's unavoidable.
I just gave up and dropped the restorableStateKeyPaths. Still a problem on the latest 10.7 and 10.8. On Aug 24, 2012, at 6:17 PM, Eric Wing wrote: > I am struggling with a crash when implementing restorableStateKeyPaths > in my NSWindowController for my main window in my app. > > I discovered that I needed to save out the window frame before I > entered fullscreen so when the user exits fullscreen, I can go back > to the original value. For this, I added an ivar to my > NSWindowController class. I also discovered that when the app is quit > in fullscreen, Lion likes to relaunch the app in fullscreen, but I > lose that variable I set. So I discovered I should use > restorableStateKeyPaths to save that value between app relaunches. My > method is simply this: > > + (NSArray *)restorableStateKeyPaths > { > return [[super restorableStateKeyPaths] > arrayByAddingObject:@"frameForNonFullScreenMode"]; > } > > > But my app also allows the main window (and controller) to be > destroyed while running and I create a new instance of the two. > Sometimes my app crashes several seconds after this happens. The crash > always happens in background thread like so: > > Crashed Thread: 8 Dispatch queue: NSPersistentUI Work > > Thread 8 Crashed:: Dispatch queue: NSPersistentUI Work > 0 libobjc.A.dylib 0x00007fff906c02d0 objc_msgSend + 16 > 1 com.apple.Foundation 0x00007fff8d4f3386 probeGC + 80 > 2 com.apple.Foundation 0x00007fff8d50a110 > -[NSConcreteMapTable grow] + 628 > 3 com.apple.Foundation 0x00007fff8d4f3324 > -[NSConcreteMapTable setObject:forKey:] + 170 > 4 com.apple.AppKit 0x00007fff91d0201b > -[NSPersistentUIManager addPendingKeyPath:forObject:] + 216 > 5 com.apple.AppKit 0x00007fff91d02197 > __72-[NSPersistentUIManager > observeValueForKeyPath:ofObject:change:context:]_block_invoke_0 + 59 > 6 libdispatch.dylib 0x00007fff8c715f3d > _dispatch_call_block_and_release + 15 > 7 libdispatch.dylib 0x00007fff8c7120fa > _dispatch_client_callout + 8 > 8 libdispatch.dylib 0x00007fff8c7134c3 > _dispatch_queue_drain + 235 > 9 libdispatch.dylib 0x00007fff8c713335 > _dispatch_queue_invoke + 52 > 10 libdispatch.dylib 0x00007fff8c713207 > _dispatch_worker_thread2 + 249 > 11 libsystem_c.dylib 0x00007fff97a05ceb _pthread_wqthread + > 404 > 12 libsystem_c.dylib 0x00007fff979f01b1 start_wqthread + 13 > > > I turned on Zombies and it appears something is trying to call the > hash method of my WindowController which is now deallocated. (I can > always reproduce this by just repeating this process a lot.) > > When I remove the restorableStateKeyPaths, my crashes go away. > > > Is there something I need to do to break this connection so the system > doesn't try to access my WindowController after I close and destroy > it? > > Thanks, > Eric > -- > Beginning iPhone Games Development > http://playcontrol.net/iphonegamebook/ > _______________________________________________ > > Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) > > Please do not post admin requests or moderator comments to the list. > Contact the moderators at cocoa-dev-admins(at)lists.apple.com > > Help/Unsubscribe/Update your Subscription: > https://lists.apple.com/mailman/options/cocoa-dev/lrucker%40vmware.com > > This email sent to lruc...@vmware.com _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com