ParseModel-iOS icon indicating copy to clipboard operation
ParseModel-iOS copied to clipboard

PFUser subclasses are never unboxed

Open fatuhoku opened this issue 10 years ago • 0 comments

This is due to the fact that

  • PFUser objects are subclasses of PFObject
  • unboxing logic checks for PFObject (which catches both PFObjects and PFUsers) before testing for PFUser.
   ..
    // 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.

fatuhoku avatar Sep 25 '14 21:09 fatuhoku