• 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: KVO Question: How to programmatically determine if one object is observing another on a keyPath and context?
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: KVO Question: How to programmatically determine if one object is observing another on a keyPath and context?


  • Subject: Re: KVO Question: How to programmatically determine if one object is observing another on a keyPath and context?
  • From: Motti Shneor <email@hidden>
  • Date: Mon, 10 Sep 2012 14:59:27 +0300

Hello and thanks Richard.

Although I don't need such heavy-weapons, and I don't at all deal with programmatic bindings here, I'd still like (if possible) to learn some more about the implementation of your internal tools. I didn't yet have a chance to work with swizzling, and maybe its time I started.

My case is not of complexity, but of performance. If I simply observe all the time, and then filter what I need, penalty would be too much. I get huge amount of observation-calls (every refresh of my core-data context) and I need to inspect lots


On 9 בספט 2012, at 15:07, Richard Somers wrote:

> On Sep 9, 2012, at 3:32 AM, Motti Shneor wrote:
>
>> - (NSUInteger)isObserver:(id)object on keyPath:(NSString *)keyPath withContext:(void *)context]; // the returned number is the count of same observances with 0 as not-observing).
>>
>> and something like
>>
>> - (BOOL)removeObserver:(id)object;	// where I instruct the receiver to remove object as an observer, on all key-paths and contexts. should return YES if object was an observer, and was removed, NO otherwise.
>>
>> Any ideas?
>
> I recently did something similar only for bindings.
>
> @interface NSObject (MYBindings)
> + (NSString *)my_objectsWithActiveBindings; // for debugging
> + (NSUInteger)my_objectsWithActiveBindingsCount; // for debugging
> - (void)my_revmoveAllBindings;
> @end
>
> This was implemented by swizzling the NSObject implementation of -bind:toObject:withKeyPath:options: and -unbind: at runtime using JRSwizzle along with keeping binding information for each instance in a single static mutable dictionary (associative storage pattern). The swizzled methods call the NSObject implementation of -bind:... and -unbind: and also keep track of the additional binding information needed.
>
> I am working on a project with a lot of programmatic bindings and I needed some debugging aids and other routines to help with binding management. At first I was hesitant to swizzle a framework method but I desperately needed some help. So far it seems to be working well and the new routines helped uncover a bug that I literally spent days trying to find with no success.
>
> --Richard
>

Motti Shneor
e-mail: email@hidden
phone: +972-8-9267730
mobile: +972-54-3136621
----------------------------------------
Ceterum censeo Microsoftinem delendam esse



_______________________________________________

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: KVO Question: How to programmatically determine if one object is observing another on a keyPath and context?
      • From: Richard Somers <email@hidden>
    • Re: KVO Question: How to programmatically determine if one object is observing another on a keyPath and context?
      • From: Mike Abdullah <email@hidden>
References: 
 >KVO Question: How to programmatically determine if one object is observing another on a keyPath and context? (From: Motti Shneor <email@hidden>)
 >Re: KVO Question: How to programmatically determine if one object is observing another on a keyPath and context? (From: Richard Somers <email@hidden>)

  • Prev by Date: Re: KVO Question: How to programmatically determine if one object is observing another on a keyPath and context?
  • Next by Date: Re: KVO Question: How to programmatically determine if one object is observing another on a keyPath and context?
  • Previous by thread: Re: KVO Question: How to programmatically determine if one object is observing another on a keyPath and context?
  • Next by thread: Re: KVO Question: How to programmatically determine if one object is observing another on a keyPath and context?
  • Index(es):
    • Date
    • Thread