ParseModel-iOS
ParseModel-iOS copied to clipboard
PFUser subclasses are never unboxed
This is due to the fact that
-
PFUser
objects are subclasses ofPFObject
- unboxing logic checks for
PFObject
(which catches bothPFObject
s andPFUser
s) before testing forPFUser
.
..
// Lastly, if this class is a PFObject or PFUser and it is registered, instantiate the appropriate ParseModel...
else if ([object isKindOfClass:[PFObject class]]) {
// *** PFUser FALLS IN TO THIS CASE
NSString *unboxedClassString = (self.registeredParseModels)[[(PFObject *) object parseClassName]];
if (unboxedClassString.length) {
unboxedObject = [(ParseModel *) [NSClassFromString(unboxedClassString) alloc] initWithParseObject:object];
}
}
else if ([object isKindOfClass:[PFUser class]]) {
// *** CODE NEVER GETS HERE
NSString *unboxedClassString = (self.registeredParseUsers)[[(PFUser *) object parseClassName]];
if (unboxedClassString.length) {
unboxedObject = [(ParseModelUser *) [NSClassFromString(unboxedClassString) alloc] initWithParseUser:object];
}
}
This means the latter branch will never be reached. They need to be reversed.