• 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: Detecting reading a key in KVC
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Detecting reading a key in KVC


  • Subject: Re: Detecting reading a key in KVC
  • From: Kyle Sluder <email@hidden>
  • Date: Thu, 11 Nov 2010 15:29:48 -0800

On Thu, Nov 11, 2010 at 2:57 PM, Graham Cox <email@hidden> wrote:
> Understood, but the OP's problem as I understand it is that it's not that the key is undefined, but the value associated with it is uninitialized. So rather than return nil, or zero, he wants to trigger a remote fetch of the value. KVC doesn't appear to provide a mechanism for that out of the box.

Nope, it doesn't. We have a very similar need, and solved it using a
custom protocol on our model objects. Now, in places where we are
about to demand an initialized value, we check to see if the model
object conforms to the protocol, and if so call the method that
switches from the uninitialized placeholder "zero" value to the
fully-fleshed object value.

// Typed in compose window, probably doesn't make sense.
@protocol KVOPlaceholder
- (void)needValueForKey:(NSString *)aKey;
@end

- (void)customerOrdered:(CatalogItem *)anItem {
  // Because "0" is a valid quantity, this CatalogItem subclass might
need to be told that
  // it can initialize its backing store for the "quantity" key now
  if ([anItem conformsToProtocol:KVOPlaceholder])
    [anItem needValueForKey:@"quantity"];

  NSNumber *quantity = [anItem valueForKey:@"quantity"];
  quantity = [NSNumber numberWithInteger:[quantity integerValue] - 1];
  [anItem setValue:quantity forKey:@"quantity"];
}

--Kyle Sluder
_______________________________________________

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

References: 
 >Detecting reading a key in KVC (From: Remco Poelstra <email@hidden>)
 >Re: Detecting reading a key in KVC (From: "email@hidden" <email@hidden>)
 >Re: Detecting reading a key in KVC (From: Quincey Morris <email@hidden>)
 >Re: Detecting reading a key in KVC (From: "email@hidden" <email@hidden>)
 >Re: Detecting reading a key in KVC (From: Quincey Morris <email@hidden>)
 >Re: Detecting reading a key in KVC (From: Remco Poelstra <email@hidden>)
 >Re: Detecting reading a key in KVC (From: Graham Cox <email@hidden>)
 >Re: Detecting reading a key in KVC (From: Remco Poelstra <email@hidden>)
 >Re: Detecting reading a key in KVC (From: Graham Cox <email@hidden>)
 >Re: Detecting reading a key in KVC (From: Ken Thomases <email@hidden>)
 >Re: Detecting reading a key in KVC (From: Graham Cox <email@hidden>)

  • Prev by Date: Re: Detecting reading a key in KVC
  • Next by Date: NSHTTPCookieStorage
  • Previous by thread: Re: Detecting reading a key in KVC
  • Next by thread: Re: Detecting reading a key in KVC
  • Index(es):
    • Date
    • Thread