Ios 子类PFObject上的PFUser属性

Ios 子类PFObject上的PFUser属性,ios,objective-c,parse-platform,pfuser,Ios,Objective C,Parse Platform,Pfuser,我已经用以下类(动态属性和.m文件中的+load&parseClassName方法)对PFObject进行了子类化 如果我在没有对手的子类版本的情况下也这样做,也没有例外 PFObject* follow = [[PFObject alloc] initWithClassName:@"DAOpponents"]; [follow setObject:user1 forKey:@"fromUser"]; // no exception!!! [follow setObject:user1 forK

我已经用以下类(动态属性和.m文件中的+load&parseClassName方法)对PFObject进行了子类化

如果我在没有对手的子类版本的情况下也这样做,也没有例外

PFObject* follow = [[PFObject alloc] initWithClassName:@"DAOpponents"];
[follow setObject:user1 forKey:@"fromUser"]; // no exception!!!
[follow setObject:user1 forKey:@"toUser"];
为什么子类PFObject不能指向PFUser对象


感谢您的帮助!非常感谢

我能够绕过这个问题,首先对PFUser进行子类化,然后在其他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
#导入
@班主任;
@阶级教区;
@界面用户:PFUser
//+(NSString*)parseClassName;
//返回当前用户
+(用户*)当前用户;
@财产(保留)NSNumber*接受协议;
@财产(保留)NSNumber*isAdmin;
@财产(保留)人*人;
@结束
和我的用户。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
#导入“User.h”
#进口
#输入“Person.h”
@实现用户
@动态接受协议;
@动态isAdmin;
@动态人;
//+(NSString*)parseClassName{
//返回@“用户”;
//}
//返回当前用户
+(用户*)当前用户{
返回(用户*)[PFUser currentUser];
}
@结束

您是否尝试过将fromUser和toUser声明为
PFUser*
而不是
PFObject*
?@Paulw11是的,我甚至尝试手动覆盖setter/getter(无动态生成)和cast“(PFObject*)user1;”。谢谢,它可以工作,但是:我必须覆盖PFUser的所有静态方法?这是一个bug还是我必须这么做的原因?PFUser是PFObject的一个特殊超类(parse.come employee here:),因此您需要对其实例化的处理与子类稍微不同。我认为您不必覆盖所有静态方法-我不需要这样做。为什么要覆盖
currentUser
[PFUser currentUser]
返回一个
实例类型
。在用户上调用此函数应返回一个用户对象(而不是PFUser)。还是我错了?对不起,这是我特定项目的一种方便方法-我想你可以放心地忽略它:)
#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
#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