ios – 在子类化PFUser时获得正确的类型

前端之家收集整理的这篇文章主要介绍了ios – 在子类化PFUser时获得正确的类型前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图在iOS上的Parse中继承PFUser.我可以使用以下代码创建一个子类:
// MyUser.h
#import <Parse/PFUser.h>
#import <Parse/PFObject+Subclass.h>
#import <Parse/PFFile.h>

@interface MyUser : PFUser<PFSubclassing>

@property PFFile *avatar;
...etc...

@end

// MyUser.m
#import "MyUser.h"

@implementation MyUser

@dynamic avatar;
...etc...

@end

当我调用[MyUser currentUser]时,我得到的对象是PFUser类型,但不是MyUser类型.将它转换为MyUser *没有帮助,它只是在我尝试使用任何自定义属性时抛出错误“无法识别的选择器发送到实例0xce9c0c0”,例如在MyUser中定义的user.avatar.

如何获取自定义类型的缓存currentUser对象?

解决方法

密钥结果是注册子类和设置应用程序ID的顺序.
[Parse setApplicationId:@"FOO" clientKey:@"BAR"];
[MyUser registerSubclass];

导致问题发生.但是,如果在注册子类后设置应用程序ID,它将按预期工作.

[MyUser registerSubclass];
[Parse setApplicationId:@"FOO" clientKey:@"BAR"];

猜你在找的iOS相关文章