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

所以我很高兴Parse本地数据存储在iOS中引入,并快速添加了几个function使用它。 在一个地方,我坚持使用某些对象的集合

[Spot pin] 

FYI Spot是PFObject的一个子类。 现在,我打开了另一个屏幕,我刚刚坚持的对象是PFQuery结果的一部分,但是我不断收到exception:

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

看起来像在这种情况下,parsing是引用固定的对象作为他们的文档状态:

启用时,将只有任何给定的PFObject的一个实例。 例如,假设您有一个“GameScore”类的实例,其objectId为“xWMyZ4YEGZ”,然后使用该objectId为“GameScore”的所有实例发出一个PFQuery。 结果将是你已经在内存中的对象的同一个实例。

而不是我的子类,它认为这只是一个PFObject …有什么办法来处理它?

自己想出了这个。 原来,你必须调用子类的registerSubclass方法之前,你甚至初始化分析与它的AppId和clientKey,并启用localDataStore。 所以代码应该看起来如下:

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

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

 - (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]; }