gpt4 book ai didi

swift - 解析 saveInBackgroundWithBlock 附加任务

转载 作者:行者123 更新时间:2023-11-30 13:11:16 24 4
gpt4 key购买 nike

我想要做的是在我的应用程序中调用 saveInBackgroundWithBlock 时进行另一次保存。我这样做是为了创建一个“日志”,记录所有更改以及更改者。我查看了 PFObject.h,但我不确定如何在 Obj-C 中正确编写它,或者除了遍历并将其添加到每个实例之外,我还可以在其他地方/如何执行此操作。这是一个好方法吗?或者我应该坚持下去并使用更难的方法?

- (void)saveInBackgroundWithBlock:(nullable PFBooleanResultBlock)block;

最佳答案

您有多种方法可以实现此类功能:

  1. 创建接收 PFObject 和 PFBooleanResultBlock 作为参数的 Util 类,此 Util 类将在回调内执行对 saveInBackgroundWithBlock 的调用,您可以实现所需的附加保存。最后你的 Util 类应该如下所示:

@interface ParseUtils : NSObject

+ (void)saveParseObject:(PFObject *)object block:(PFBooleanResultBlock)block;

@end

@implementation ParseUtils

+ (void)saveParseObject:(PFObject *)object block:(PFBooleanResultBlock)block {

// if the object is nil or it was not changed return
if (!object || !object.isDirty) return;

[object saveInBackgroundWithBlock:^(BOOL succeeded, NSError * _Nullable error) {

// if no error occured
if (!error){

// HERE YOU SHOULD CALL YOUR ADDITIONAL SAVE...

}

// handle the callback to the calling class
if (block){
block(succeeded,error);
}

}];

}

@end

  • 另一个选项是执行相同的操作,但使用单例(如果您为项目创建了一些 REST 客户端单例)

  • 另一个不错的选择是在 PFObject 之上创建类别,并创建一个与 util 的方法完全相同的方法

  • 还有更多选择,但我认为已经足够了..如果您想尽快完成,请使用实用程序。如果你想用最好的架构来做,那就选择类别。

    关于swift - 解析 saveInBackgroundWithBlock 附加任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38701046/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com