Skip to content

PFUser subclasses are never unboxed #5

Open
@fatuhoku

Description

@fatuhoku

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions