From 9f35eee17128f8d18177709b9a45efa2f3dc1282 Mon Sep 17 00:00:00 2001 From: Saul Mora Date: Mon, 26 Mar 2012 00:18:47 +0100 Subject: [PATCH] moving method to more appropriate category --- ...NSAttributeDescription+MagicalDataImport.h | 1 + ...NSAttributeDescription+MagicalDataImport.m | 28 +++++++++++++++++ .../NSManagedObject+MagicalDataImport.m | 31 +------------------ 3 files changed, 30 insertions(+), 30 deletions(-) diff --git a/MagicalRecord/Categories/DataImport/NSAttributeDescription+MagicalDataImport.h b/MagicalRecord/Categories/DataImport/NSAttributeDescription+MagicalDataImport.h index bce93f925..ee99d5f64 100644 --- a/MagicalRecord/Categories/DataImport/NSAttributeDescription+MagicalDataImport.h +++ b/MagicalRecord/Categories/DataImport/NSAttributeDescription+MagicalDataImport.h @@ -11,5 +11,6 @@ @interface NSAttributeDescription (MagicalRecord_DataImport) - (NSString *) MR_primaryKey; +- (id) MR_valueForKeyPath:(NSString *)keyPath fromObjectData:(id)objectData; @end diff --git a/MagicalRecord/Categories/DataImport/NSAttributeDescription+MagicalDataImport.m b/MagicalRecord/Categories/DataImport/NSAttributeDescription+MagicalDataImport.m index de641ba81..d44bf564a 100644 --- a/MagicalRecord/Categories/DataImport/NSAttributeDescription+MagicalDataImport.m +++ b/MagicalRecord/Categories/DataImport/NSAttributeDescription+MagicalDataImport.m @@ -15,4 +15,32 @@ - (NSString *) MR_primaryKey; return nil; } +- (id) MR_valueForKeyPath:(NSString *)keyPath fromObjectData:(id)objectData; +{ + id value = [objectData valueForKeyPath:keyPath]; + + NSAttributeType attributeType = [self attributeType]; + NSString *desiredAttributeType = [[self userInfo] valueForKey:kMagicalRecordImportAttributeValueClassNameKey]; + if (desiredAttributeType) + { + if ([desiredAttributeType hasSuffix:@"Color"]) + { + value = colorFromString(value); + } + } + else + { + if (attributeType == NSDateAttributeType) + { + if (![value isKindOfClass:[NSDate class]]) + { + NSString *dateFormat = [[self userInfo] valueForKey:kMagicalRecordImportCustomDateFormatKey]; + value = dateFromString([value description], dateFormat ?: kMagicalRecordImportDefaultDateFormatString); + } + value = adjustDateForDST(value); + } + } + + return value == [NSNull null] ? nil : value; +} @end diff --git a/MagicalRecord/Categories/NSManagedObject/NSManagedObject+MagicalDataImport.m b/MagicalRecord/Categories/NSManagedObject/NSManagedObject+MagicalDataImport.m index 86908c18c..e39a16090 100644 --- a/MagicalRecord/Categories/NSManagedObject/NSManagedObject+MagicalDataImport.m +++ b/MagicalRecord/Categories/NSManagedObject/NSManagedObject+MagicalDataImport.m @@ -26,35 +26,6 @@ @implementation NSManagedObject (MagicalRecord_DataImport) -- (id) MR_valueForAttribute:(NSAttributeDescription *)attributeInfo fromObjectData:(NSDictionary *)objectData forKeyPath:(NSString *)keyPath -{ - id value = [objectData valueForKeyPath:keyPath]; - - NSAttributeType attributeType = [attributeInfo attributeType]; - NSString *desiredAttributeType = [[attributeInfo userInfo] valueForKey:kMagicalRecordImportAttributeValueClassNameKey]; - if (desiredAttributeType) - { - if ([desiredAttributeType hasSuffix:@"Color"]) - { - value = colorFromString(value); - } - } - else - { - if (attributeType == NSDateAttributeType) - { - if (![value isKindOfClass:[NSDate class]]) - { - NSString *dateFormat = [[attributeInfo userInfo] valueForKey:kMagicalRecordImportCustomDateFormatKey]; - value = dateFromString([value description], dateFormat ?: kMagicalRecordImportDefaultDateFormatString); - } - value = adjustDateForDST(value); - } - } - - return value == [NSNull null] ? nil : value; -} - - (BOOL) MR_importValue:(id)value forKey:(NSString *)key { NSString *selectorString = [NSString stringWithFormat:@"import%@:", [key MR_capitalizedFirstCharaterString]]; @@ -79,7 +50,7 @@ - (void) MR_setAttributes:(NSDictionary *)attributes forKeysWithDictionary:(id)o if (lookupKeyPath) { - id value = [self MR_valueForAttribute:attributeInfo fromObjectData:objectData forKeyPath:lookupKeyPath]; + id value = [attributeInfo MR_valueForKeyPath:lookupKeyPath fromObjectData:objectData]; if (![self MR_importValue:value forKey:attributeName]) { [self setValue:value forKey:attributeName];