> On 22 Sep 2016, at 03:21, Slipp Douglas Thompson > <apple+cocoa-...@slippyd.com> wrote: > > >> On Sep 21, 2016, at 8:00 PM, Slipp Douglas Thompson >> <apple+cocoa-...@slippyd.com> wrote: >> >>> On Sep 21, 2016, at 17:01 , Graham Cox <graham....@bigpond.com> wrote: >>>> >>>> This should be: if([(NSString*)context >>>> isEqualToString:@“mediaLibraryLoaded”])… >>> >>> Actually, this is not a good idea either, because *other* observations — >>> ones you don’t control — might use a value that’s not an object, or not >>> even a valid pointer. >> > > I see your point about context plausibly not being neither an NSObject nor > nil. While you could check if context is an NSObject beforehand (is there > even a reliable way to do this? CocoaWithLove > <http://www.cocoawithlove.com/2010/10/testing-if-arbitrary-pointer-is-valid.html> > couldn't find a great approach ;-/)— I think coding consistently against all > other addObserver: calls in your app is a good-enough solution. I.E. If you > implement observeValueForKeyPath: with [context isEqual: …] checks, make sure > all the other addObserver: calls (for those same keys, at least) are using > nil or NSObjects.
That's not enough. You would also have to ensure that none of Apple's code uses a non-object context in any KVOs it installs on any of your objects. Which you can't. Cheers, -- Uli Kusterer "The Witnesses of TeachText are everywhere..." http://www.zathras.de _______________________________________________ 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