解析本地数据存储和 PFObject 子类



所以当 iOS 中引入 Parse 本地数据存储并迅速使用它添加了一些功能时,我很高兴。在一个地方,我使用

[Spot pin] 

仅供参考,现货是PFObject的一个子类。现在,我打开另一个屏幕,我刚刚保留的对象是 PFQuery 结果的一部分,但是我不断收到异常:

[PFObject 名称]:发送到实例0x7fd2716422e0的无法识别的选择器

在这种情况下,看起来 Parse 引用了固定的对象,如其文档所述:

启用后,任何给定的 PFObject 将只有一个实例。 例如,假设您有一个"GameScore"类的实例 对象 ID 为 "xWMyZ4YEGZ",然后你为所有 具有该对象ID的"GameScore"实例。结果将是 内存中已有对象的同一实例。

但与其说是我的子类,不如说它认为它只是一个 PFObject......有什么办法可以处理吗?

我自己想通了。事实证明,您必须在子类上调用 registerSubclass 方法,然后才能使用它的 AppId 和 clientKey 初始化 Parse 并启用 localDataStore。所以代码应该看起来:

[Spot registerSubclass];
[Parse setApplicationId:@"XXX" clientKey:@"XXX"];
[Parse enableLocalDatastore];

...在调用 setApplicationId:clientKey 之前调用 [Parse enableLocalDatastore]:

- (void)application:(UIApplication *)application didFinishLaunchWithOptions:(NSDictionary *)options {
  [Parse enableLocalDatastore];
  [Parse setApplicationId:@"parseAppId" clientKey:@"parseClientKey"];
}

https://www.parse.com/docs/ios/guide#local-datastore-pinning

和 Spot 子类的 .m 中:

+ (void)load{
    [self registerSubclass];
}

最新更新