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

标签 ios objective-c subclass parse-platform

我正在尝试在 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”,例如user.avatar 在 MyUser 中定义。

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

最佳答案

原来关键是注册子类和设置应用程序ID的顺序。

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

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

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

关于ios - 子类化 PFUser 时获得正确的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22203689/

相关文章:

ios - 用户注销后 Firebase Facebook 登录按钮不会更改

ios - 如何获取 didSelectRowAt IndexPath 以区分部分?

iphone - CGAffineTransform Rotation 拉伸(stretch)了我的图像,我做错了什么?

c++ - 我需要一些 C++ 专家关于扩展 std::string 的意见

python - 子类化 datetime64

java - 将继承的变量强制转换为子类

iphone - 有没有办法将 Maven + 静态库用于 iPhone 依赖项?

objective-c - 将一个数组分成四个元素的单独数组加上提醒

ios - Obj-c - 显示 'Pay with Apple Pay' 按钮?

objective-c - 如何从 Objective C/Cocoa 中的 View 类事件调用 Controller 类(委托(delegate))方法