关于子类PFObject的PFUser属性

我已经使用下面的类(dynamic属性和.m文件中的+ load&parseClassName方法)分类PFObject,

@interface DAOpponents : PFObject <PFSubclassing> @property (nonatomic, strong) PFObject* fromUser; @property (nonatomic, strong) PFObject* toUser; @property (nonatomic) BOOL isVisible; @property (nonatomic) BOOL isPersistent; + (NSString *)parseClassName; @end 

在unit testing中,我尝试创build一个示例DAOpponents对象:

 DAOpponents* follow = [DAOpponents object]; follow.fromUser = user1; // caught "NSInvalidArgumentException", "PFObject values may not have class: PFUser" follow.toUser = user2; [follow save]; 

如果我在没有对手版本的情况下做同样的事情,那就没有例外

 PFObject* follow = [[PFObject alloc] initWithClassName:@"DAOpponents"]; [follow setObject:user1 forKey:@"fromUser"]; // no exception!!! [follow setObject:user1 forKey:@"toUser"]; 

为什么一个子类PFObject不能指向一个PFUser对象?

任何帮助感激! 非常感谢!

我能够解决这个问题,首先inheritancePFUser,然后在我的其他PFObject子类中使用名为User子类。

我的PFUser子类User.h:

 #import <Parse/Parse.h> @class Person; @class Parish; @interface User : PFUser<PFSubclassing> //+ (NSString *)parseClassName; // Return the current user + (User *)currentUser; @property (retain) NSNumber *acceptedAgreements; @property (retain) NSNumber *isAdmin; @property (retain) Person *person; @end 

和我的User.m:

 #import "User.h" #import <Parse/PFObject+Subclass.h> #import "Person.h" @implementation User @dynamic acceptedAgreements; @dynamic isAdmin; @dynamic person; //+ (NSString *)parseClassName { // return @"User"; //} // Return the current user + (User *)currentUser { return (User *)[PFUser currentUser]; } @end