From de21c685432fb7e65019e6685fcf62b91d8d1e2c Mon Sep 17 00:00:00 2001 From: Hok Shun Poon Date: Thu, 25 Sep 2014 22:38:39 +0100 Subject: [PATCH 1/2] Fix PFUser unboxing. Fixes #3 in part --- ParseModel/ParseModelUtils.m | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/ParseModel/ParseModelUtils.m b/ParseModel/ParseModelUtils.m index 1adffea..cb6249e 100644 --- a/ParseModel/ParseModelUtils.m +++ b/ParseModel/ParseModelUtils.m @@ -146,19 +146,20 @@ - (id)performUnboxingIfNecessary:(id)object targetClass:(Class)targetClass unboxedObject = unboxedDictionary; } - // Lastly, if this class is a PFObject or PFUser and it is registered, instantiate the appropriate ParseModel... - else if ([object isKindOfClass:[PFObject class]]) { - NSString *unboxedClassString = [self.registeredParseModels objectForKey:[(PFObject *)object parseClassName]]; - if (unboxedClassString.length) { - unboxedObject = [[NSClassFromString(unboxedClassString) alloc] initWithParseObject:object]; - } - } + // Lastly, if this class is a PFUser or PFObject (checking in that order) and it is registered, instantiate the appropriate ParseModel... else if ([object isKindOfClass:[PFUser class]]) { NSString *unboxedClassString = [self.registeredParseUsers objectForKey:[(PFUser *)object parseClassName]]; if (unboxedClassString.length) { unboxedObject = [[NSClassFromString(unboxedClassString) alloc] initWithParseUser:object]; } } + else if ([object isKindOfClass:[PFObject class]]) { + NSString *unboxedClassString = [self.registeredParseModels objectForKey:[(PFObject *)object parseClassName]]; + if (unboxedClassString.length) { + unboxedObject = [[NSClassFromString(unboxedClassString) alloc] initWithParseObject:object]; + } + } + // Check for NSNull and destroy it. Sorry. if ([unboxedObject class] == [NSNull class]) { From 27de2c57facbb5ca2d1d5af2cc20176fb372865f Mon Sep 17 00:00:00 2001 From: Hok Shun Poon Date: Thu, 25 Sep 2014 22:39:39 +0100 Subject: [PATCH 2/2] Update PFUser parseModelClass Fixes #3, because registration of PFUser classes depend on this. --- ParseModel/ParseModelUser.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ParseModel/ParseModelUser.m b/ParseModel/ParseModelUser.m index 5cded68..083cf6f 100644 --- a/ParseModel/ParseModelUser.m +++ b/ParseModel/ParseModelUser.m @@ -16,7 +16,7 @@ + (NSString *)parseModelClass { // Default Implementation. - return @"User"; + return @"_User"; } + (instancetype)parseModel