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"];

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...