• 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 autonotifying complaining about custom setter return value
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: KVO autonotifying complaining about custom setter return value


  • Subject: Re: KVO autonotifying complaining about custom setter return value
  • From: Chris Suter <email@hidden>
  • Date: Wed, 5 Mar 2008 14:47:45 +1100


On 05/03/2008, at 2:10 PM, Kyle Sluder wrote:

On Tue, Mar 4, 2008 at 11:49 AM, Jim Turner <email@hidden> wrote:
In attempting to use a custom setter for a object, I'm getting the
following message in the console the first time that object is
instantiated:

KVO autonotifying only supports -set<Key>: methods that return void.
Autonotifying will not be done for invocations of -[MyObject
setValue:]

[snip]

-(void) setValueForBindings:(id)_value
{
[self willChangeValueForKey:@"value"];
{
BOOL didSetOK = [self setStringValue:(NSString *)_value];
// Do something with didSetOK
}
[self didChangeValueForKey:@"value"];
}

Please re-read the second sentence of that error again. You are manually invoking -willChangeValueForKey: and -didChangeValueForKey: and KVO is complaining "I've already done that!". Either stop doing that, or implement -automaticallyNotifiesObserversForKey: to return NO for the "bindings" key.

Implementing -automaticallyNotifiesObserversForKey: will solve the problem but just removing the calls to -willChangeValueForKey: and - didChangeValueForKey: won't.


I suspect the real cause of the problem is that there's a setValue: method defined in the superclass that returns something.

If you're going to be using KVO/KVC on your objects, you should probably reconsider whether it's a good idea for your setter/getter methods to use non-default names. Obviously, you can change the name of your property if it clashes with methods in your superclass.

- Chris

Attachment: smime.p7s
Description: S/MIME cryptographic signature

_______________________________________________

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 autonotifying complaining about custom setter return value
      • From: "Jim Turner" <email@hidden>
References: 
 >KVO autonotifying complaining about custom setter return value (From: "Jim Turner" <email@hidden>)
 >Re: KVO autonotifying complaining about custom setter return value (From: "Kyle Sluder" <email@hidden>)

  • Prev by Date: Re: Problem with NSSearchField in Apple's Core Data Tutorial
  • Next by Date: Undo and Core Data issue
  • Previous by thread: Re: KVO autonotifying complaining about custom setter return value
  • Next by thread: Re: KVO autonotifying complaining about custom setter return value
  • Index(es):
    • Date
    • Thread