• 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
Core Data: following a relationship to set a transient attribute during awakeFromFetch
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Core Data: following a relationship to set a transient attribute during awakeFromFetch


  • Subject: Core Data: following a relationship to set a transient attribute during awakeFromFetch
  • From: Steve Mykytyn <email@hidden>
  • Date: Sun, 14 Dec 2008 18:25:38 -0800

I am using transient attributes as a nice and efficient way to display formatted data (with line breaks) in an NSTableView, and am running into trouble in my awakeFromFetch: method for a subclass of NSManagedObject.

This works fine in the awakeFromFetch: when building a transient attribute based on permanent attributes of the object in question, but

I'm trying to follow relationships to retrieve attributes from several other NSManagedObjects.

The relationship is to the correct NSManagedObject, which is a fault, as seen here:

12/14/08 5:50:43 PM myApp[14070] after we get it city = <NSManagedObject: 0x150e4370> (entity: destination_city; id: 0x150d14e0 <x-coredata://E77970B1-4F89-4C1C-B788-334AEEF886EB/destination_city/p22919 > ; data: <fault>)

Trying to access attributes of the relation just fails with a message like:

12/14/08 5:51:19 PM myApp[14070] *** NSRunLoop ignoring exception 'statement is still active' that raised during posting of delayed perform with target 0x14c90c80 and selector 'invokeWithTarget:'


Sample code:

awakeFromFetch: in my NSManagedObject subclass

	NSManagedObject *city = [self valueForKey:@"city"];
	NSManagedObject *state = [self primitiveValueForKey:@"state"];
	NSManagedObject *country = [self primitiveValueForKey:@"country"];	

// ********* fails on the next statement - city is there, and marked as a default...

NSString *cityName = [city valueForKey:@"city_name"];
NSString *stateName = [state valueForKey:@"state_name"];
NSString *countryName = [country valueForKey:@"countryName"];

NSString *transient_location = [NSString stringWithFormat:@"%@, %@\n %@", cityName, stateName, countryName];



displayPatternValue is much slower than this approach and I don't want to denormalize my tables unless I have to do so.


Suggestions?
_______________________________________________

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: Core Data: following a relationship to set a transient attribute during awakeFromFetch
      • From: Quincey Morris <email@hidden>
  • Prev by Date: Re: controlTextDidChange for UITextField?
  • Next by Date: Re: Text track in QTMovie
  • Previous by thread: Re: CALayer and Memory Management
  • Next by thread: Re: Core Data: following a relationship to set a transient attribute during awakeFromFetch
  • Index(es):
    • Date
    • Thread