you need to override automaticallyNotifiesObserversForKey: to return NO for @"selectedIndex"

see:

http://developer.apple.com/library/ios/#documentation/cocoa/conceptual/KeyValueObserving/Articles/KVOCompliance.html

if you observe an object, the runtime automatically generates the willChange/didChange unless you override this method to return NO.

basically you're sending extra willChange/didChange calls here as it is.

-aaron



At 6:28 PM -0700 4/9/12, Rick Mann wrote:
I'm observing a property of one of my classes, "selectedIndex". Even if the value is set to the same value, KVO fires and my observe method gets called, which is something I thought by default it doesn't do.

So I implemented a custom setter for my property, like this:

- (void)
setSelectedIndex: (NSUInteger) inIndex
{
    if (mSelectedIndex == inIndex)
    {
        return;
    }

    [self willChangeValueForKey: @"selectedIndex"];
    mSelectedIndex = inIndex;
    [self didChangeValueForKey: @"selectedIndex"];
}

Sure enough, my method returns early, but KVO still gets called. What am I misunderstanding?

Thanks,
Rick


_______________________________________________

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/mandelbaum%40olywa.net

This email sent to mandelb...@olywa.net

_______________________________________________

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

Reply via email to