• 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: Subclassing NSManagedObject
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Subclassing NSManagedObject


  • Subject: Re: Subclassing NSManagedObject
  • From: T Reaves <email@hidden>
  • Date: Sun, 22 May 2005 19:34:28 -0400


On May 22, 2005, at 6:46 PM, Fritz Anderson wrote:

On 22 May 2005, at 5:01 PM, T Reaves wrote:


For my accessors & mutators, do I really need to go through all the steps as outlined in Apple's docs? If they are simple accessors & mutators, can I do

- (NSString *)name
{
    return [self valueForKey:@"name"];
}
- (void)setName:(NSString *)newName
{
    [self setValue:newName forKey:@"name"];
}


Shriek. Review Key-Value Coding. The key-value method valueForKey: is implemented so that [self valueForKey: @"name"] will result in a call to the name method. Which you define here as [self valueForKey: @"name"]. Difficulties ensue. The same problem (filling in the blanks) applies to setValue:forKey:.


willAccessValueForKey:/primitiveValueForKey:/didAccessValueForKey: are recommended not just to antagonize you, but because they are necessary. The will/didAccess methods assure you the object store is in a consistent state while you access it, and the primitive accessor does a direct-to-the-store access that avoids the kinds of loops seen above.



NSManagedObject would have to over-ride that, or it would have the same trouble. You can send those messages to any NSManagedObject instance to return/set the persistent value. Correct? And if they are over-ridden in NSManagedObject, I should be able to use them.

Or does some kind of funky run-time proxy get created where Apple implements all those methods? I mean, one of the whole premises of OO coding is reuse. So if I can send valueForKey: and setValue:forKey: to any NSManagedObject instance correctly,subclasses should just have to do implementation specific stuff, then defer to the superclass' implementation. Right?




_______________________________________________ Do not post admin requests to the list. They will be ignored. Cocoa-dev mailing list (email@hidden) Help/Unsubscribe/Update your Subscription: This email sent to email@hidden
  • Follow-Ups:
    • Re: Subclassing NSManagedObject
      • From: mmalcolm crawford <email@hidden>
References: 
 >Subclassing NSManagedObject (From: T Reaves <email@hidden>)
 >Re: Subclassing NSManagedObject (From: Fritz Anderson <email@hidden>)

  • Prev by Date: Re: Subclassing NSManagedObject
  • Next by Date: Re: CoreData relationships in IB
  • Previous by thread: Re: Subclassing NSManagedObject
  • Next by thread: Re: Subclassing NSManagedObject
  • Index(es):
    • Date
    • Thread