添加行为以删除解析中的方法
Add behavior to delete method in parse
我有一个 PFObject 的自定义子类,用于跟踪设备上的大型视频文件。我想确保如果我删除 PFObject,videoFile 也会被删除。
现在如果重写删除方法的所有变体,但这似乎是错误的。删除对象时是否有添加行为的集中方式?
有一个钩子可以捕获后端的每个删除,(beforeDelete
在云代码中),但从问题来看,这听起来像是错误的捕获位置,因为文件需要删除是本地的。
最近解析 open-sourced the SDK. Perusing the code。看起来删除变体最终都调用了deleteInBackground
。因此,有一个想法——有点太聪明了,IMO——就是只覆盖那个。但我认为依赖这个未记录的事实是不明智的。
如果您控制调用方,一个想法是只制定一个永远不直接调用 delete 的策略,并提供一个 "otuswebDelete" 方法来删除对象和文件。
如果您无法控制调用者(或者不相信自己会记住自己的策略),我认为根据您当前的设计,您最好只覆盖几个变体:
– delete
– delete:
– deleteInBackground
– deleteInBackgroundWithBlock:
– deleteEventually
都可以只调用super
删除,然后调用子类中的方法删除本地文件。还不错,IMO。
最后,由于太多无法在此详述的原因,我习惯于 "wrapping" 我的 PFObjects(一个 NSObject
子类,它有一个 PFObject
属性 ) 而不是子类化它们。
这种方法的负担是为属性创建访问器有点乏味,但在 return 中,我可以更好地控制 (a) SDK 方法的使用(如您的问题),( b) 序列化,(c) 获取管理相关对象,(d) 更多...
我有一个 PFObject 的自定义子类,用于跟踪设备上的大型视频文件。我想确保如果我删除 PFObject,videoFile 也会被删除。
现在如果重写删除方法的所有变体,但这似乎是错误的。删除对象时是否有添加行为的集中方式?
有一个钩子可以捕获后端的每个删除,(beforeDelete
在云代码中),但从问题来看,这听起来像是错误的捕获位置,因为文件需要删除是本地的。
最近解析 open-sourced the SDK. Perusing the code。看起来删除变体最终都调用了deleteInBackground
。因此,有一个想法——有点太聪明了,IMO——就是只覆盖那个。但我认为依赖这个未记录的事实是不明智的。
如果您控制调用方,一个想法是只制定一个永远不直接调用 delete 的策略,并提供一个 "otuswebDelete" 方法来删除对象和文件。
如果您无法控制调用者(或者不相信自己会记住自己的策略),我认为根据您当前的设计,您最好只覆盖几个变体:
– delete
– delete:
– deleteInBackground
– deleteInBackgroundWithBlock:
– deleteEventually
都可以只调用super
删除,然后调用子类中的方法删除本地文件。还不错,IMO。
最后,由于太多无法在此详述的原因,我习惯于 "wrapping" 我的 PFObjects(一个 NSObject
子类,它有一个 PFObject
属性 ) 而不是子类化它们。
这种方法的负担是为属性创建访问器有点乏味,但在 return 中,我可以更好地控制 (a) SDK 方法的使用(如您的问题),( b) 序列化,(c) 获取管理相关对象,(d) 更多...