From 832f85a217184d717dc2cf7aa0fb01915228512e Mon Sep 17 00:00:00 2001 From: wangzv Date: Sat, 22 Oct 2016 13:40:43 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=B9coreData=E5=B5=8C=E5=A5=97=E8=A7=A3?= =?UTF-8?q?=E6=9E=90=E5=81=9A=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 当coreData嵌套时无法解析子类,因为coredata对应为NSSet而非NSArray。 --- MJExtension/MJFoundation.m | 3 ++- MJExtension/NSObject+MJKeyValue.m | 11 ++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/MJExtension/MJFoundation.m b/MJExtension/MJFoundation.m index 23a7d8cd..9e340929 100644 --- a/MJExtension/MJFoundation.m +++ b/MJExtension/MJFoundation.m @@ -27,7 +27,8 @@ + (NSSet *)foundationClasses [NSArray class], [NSDictionary class], [NSString class], - [NSAttributedString class], nil]; + [NSAttributedString class], + [NSSet class],nil]; } return foundationClasses_; } diff --git a/MJExtension/NSObject+MJKeyValue.m b/MJExtension/NSObject+MJKeyValue.m index 84fe982b..e3c93a6e 100755 --- a/MJExtension/NSObject+MJKeyValue.m +++ b/MJExtension/NSObject+MJKeyValue.m @@ -186,6 +186,15 @@ - (instancetype)mj_setKeyValues:(id)keyValues context:(NSManagedObjectContext *) } // 3.赋值 + + //赋值前先对CoreData进行处理 + if ([context isKindOfClass:[NSManagedObjectContext class]] && + propertyClass == [NSSet class] && + [value isKindOfClass:[NSArray class]]) + { + value = [[NSSet alloc] initWithArray:value]; + } + [property setValue:value forObject:self]; } @catch (NSException *exception) { MJExtensionBuildError([self class], exception.reason); @@ -706,4 +715,4 @@ - (NSString *)JSONString { return [self mj_JSONString]; } -@end \ No newline at end of file +@end