Hello everyone. 

We work with a CoreData model that is memory-based. However,  at times I would 
want to (partially) save an entity to the UserDefaults, as a dictionary. 
For that, I wrote a little NSManagedObject extension (Category) with the 
following method:

@interface NSManagedObject (OURExtension) 
@property (readonly) NSMutableDictionary *attributesAsDictionary;
@end

- (NSMutableDictionary *)attributesAsDictionary {
        NSMutableDictionary *attributesDictionary = [NSMutableDictionary 
dictionaryWithCapacity:[self.entity.attributesByName count]];
        for (NSAttributeDescription* attribute in self.entity.attributesByName 
) {
                NSString *attribName = [attribute name];
                id attribValue = [self valueForKey:attribName];
                if (attribName && attribValue)
                        [attributesDictionary setObject:attribValue 
forKey:attribName];
        }
        return attributesDictionary;
}

Running this for a nice entity that I just Saved (validated) and Fetched again 
--- the method crashes horribly on the NSString *attribName = [attribute name];

If I step inside with the debugger, I see things I can't understand.  I get 
into the loop, and for the first attribute ---
1. Debugger claims  attribute type is CFStringRef * instead of  
NSAttributeDescription* 
2. Summary for  attribute is "telephoneID" which is reasonable --- one of my 
attributes is called like that.
3. drilling down, the private "_name"  iVar for the attribute is nil but when I 
try to get it :
4. NSString *attribName = [attribute name] crashes and debugger looses all 
track of stack or anything. 

I looked for "valid" "isValid" or similar properties in NSAttributeDescription 
and its ancestor NSPropertyDescription to no avail. Nothing in the docs will 
tell me WHEN is it right to use the NSAttributeDescription  in the above manner.

Ideas anyone? 


Motti Shneor
---------------------------------------------------------
Ceterum censeo Microsoftinem delendam esse





_______________________________________________

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:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to