• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Trying to understand/prevent crash using restorableStateKeyPaths in NSPersistentUI Work
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Trying to understand/prevent crash using restorableStateKeyPaths in NSPersistentUI Work


  • Subject: Re: Trying to understand/prevent crash using restorableStateKeyPaths in NSPersistentUI Work
  • From: Lee Ann Rucker <email@hidden>
  • Date: Mon, 29 Jul 2013 19:33:56 -0700

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 (email@hidden)
>
> 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:
>
> This email sent to email@hidden


_______________________________________________

Cocoa-dev mailing list (email@hidden)

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:

This email sent to email@hidden


  • Follow-Ups:
    • Re: Trying to understand/prevent crash using restorableStateKeyPaths in NSPersistentUI Work
      • From: Quincey Morris <email@hidden>
  • Prev by Date: Re: UIButton events on a CALayer
  • Next by Date: Re: Trying to understand/prevent crash using restorableStateKeyPaths in NSPersistentUI Work
  • Previous by thread: Re: UIButton events on a CALayer
  • Next by thread: Re: Trying to understand/prevent crash using restorableStateKeyPaths in NSPersistentUI Work
  • Index(es):
    • Date
    • Thread