【问题标题】:Parse, Action on Save (On Device)解析,保存操作(在设备上)
【发布时间】:2015-06-18 14:23:06
【问题描述】:

我正在使用 Parse 构建一个 iOS 应用程序。当保存任何类型的任何数据时,我希望能够执行操作。特别是在通用保存上,而不是在特定保存操作之后,因为这意味着每次通过我的应用保存时都会这样做。

有可能吗?

  1. 解析触发的任何保存事件。

  2. 保存完成后执行操作。

【问题讨论】:

    标签: ios objective-c parse-platform save


    【解决方案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 */ }吗?
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-02-23
        • 1970-01-01
        • 2014-06-21
        • 1970-01-01
        • 2020-04-17
        • 2021-11-08
        相关资源
        最近更新 更多