解析,保存操作(在设备上)
Posted
技术标签:
【中文标题】解析,保存操作(在设备上)【英文标题】:Parse, Action on Save (On Device) 【发布时间】:2015-06-18 14:23:06 【问题描述】:我正在使用 Parse 构建一个 ios 应用程序。当保存任何类型的任何数据时,我希望能够执行操作。特别是在通用保存上,而不是在特定保存操作之后,因为这意味着每次通过我的应用保存时都会这样做。
有可能吗?
即
解析触发的任何保存事件。
保存完成后执行操作。
【问题讨论】:
【参考方案1】:一些纯粹主义者认为这有点像 hack,但这是一个可以通过 Swizzling 方法解决的问题。本质上,你用你自己的方法替换了一个类的方法。在这种情况下,您将替换 Parse 保存方法以使它们能够发送事件并执行其原始功能。
我在Github 上有一个 Swizzling 方法的工作示例
此示例代码增强了 UIViewController 并将日志记录功能添加到 viewWillAppear: viewDidAppear: viewWillDisappear: 和 viewDidDisappear 方法。但是您可以在需要注入功能的任何地方使用它。
【讨论】:
【参考方案2】:您有两个选择,您可以使用 Cloud Code 并编写一个 afterSave
钩子,该钩子将在每次保存时触发。这将在 Parse 服务器上运行,您可以在逻辑更改方面快速移动,因为不需要客户端更新来更改其背后的逻辑。但是,这些功能仅限于运行 3 秒,因此您需要非常快速,并且不应在此处执行任何大规模操作。详情请查看Cloud Code documentation。
另一种方式,如果您真的想在设备上执行此操作,请在每次保存操作后触发NSNotification
,创建一个监听此通知的类并在保存后执行所需的任何操作。也可以在这里查看NSNotification 上的 Apple 文档。
【讨论】:
【参考方案3】:尝试在 PFObject 上创建一个类别并创建自定义保存
- (void) customSave
[self save]
//custom function
您需要为您打算使用的每个 PFObject 保存命令执行此操作
【讨论】:
不确定这实际上是如何解决问题的。请您提供更多详细信息 而不是在项目中的任何地方调用[object save]
,而是调用[object customSave]
。不确定这是否是您要找的。span>
我不明白你所做的一切就是做到这一点,而不是到处调用[object save]
,而是到处调用[object customSave]
,这有什么更好的?请解释你的答案。
你不能子类保存-(void) customSave [super save]; /* your special save */
吗?以上是关于解析,保存操作(在设备上)的主要内容,如果未能解决你的问题,请参考以下文章