这被标记为iOS
,但我确信它对其他 Parse SDK 也很有用。您可能知道,Parse不久前PFObject
向 SDK 添加了创建原生子类的功能。iOS
出于多种原因,这是一个很好的补充。首先,它允许编译器通过为对象属性创建动态属性来检查您的代码:
myObject[@"myAttribute"]
被转换为myObject.myAttribute
其次,对这个问题更重要的是,自定义子类可以增加功能。例如,假设我创建了一个将Alarm
对象存储在 Parse 云上的警报应用程序。在我的自定义子类中,我可以覆盖+ (instancetype)object
、- (void)saveEventually
和- (void)deleteEventually
方法,以便对象可以在创建、修改或删除时为自己alarm
安排/更新/删除 a 。UILocalNotification
这是事情变得复杂的地方,我的实际问题出现了。假设用户在一台设备上创建警报(将其上传到云端),然后将其自动同步到另一台设备。第二个设备显然会在后台使用PFQuery
's更新其内容- (BFTask *)findObjectsInBackground
,然后调用- (BFTask *)fetchIfNecessaryInBackground
每个对象以确保其所有内容都在设备上。PFObject
我的问题是:从 Parse 云数据库中找到/获取子类时会调用哪些方法(如果有) ?就此而言,从本地数据存储区初始化的对象呢?
就像我提到的那样,重写各种方法对于在设备上创建和管理的对象非常有效,但我对如何从刚刚从本地或远程数据存储进入内存的新对象中运行自定义代码感到困惑。任何有关如何处理此问题的想法或建议将不胜感激。Parse 文档没有涵盖这种情况,因此它甚至可能不是最佳实践,但在我看来它应该是。无论如何,感谢您的时间和您的见解。