ios - 子类 PFObject 上的 PFUser 属性

标签 ios objective-c parse-platform pfuser

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

@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

在单元测试中,我尝试创建示例 DAOpponents-Object:

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

如果我在没有对手的子类版本的情况下执行相同的操作,则没有异常(exception)

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

和我的 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

关于ios - 子类 PFObject 上的 PFUser 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26318276/

相关文章:

javascript - 如何使用 REST API 将表单数据从 ionic 应用程序发送到 parse.com MBaaS

ios - AVSpeechSynthesizer 有问题,有解决方法吗?

objective-c - 在 Xcode 中使用纹理图集而不使用 cocos2d

ios - 状态栏和颜色命令问题

ios - (BOOL) webView...没有触发所有请求

ios - 导航标题无法正常工作

c++ - 如何在 Swift 项目中使用 Superpowered 库

ios - 如何在 Objective-C 中将字符串插入到 sqlite?

iphone - 自定义标注在 ios6 中显示不正确?

swift - 使用 Parse 的 IOS 8 应用程序在更新后无法运行