0

我想要做的是在我的应用程序中调用 saveInBackgroundWithBlock 时再次保存。我这样做是为了创建所有更改以及谁更改它的“日志”。我查看了 PFObject.h,但我不确定如何在 Obj-C 中正确编写它,或者除了通过并将其添加到每个实例之外,我还能在哪里/如何做到这一点。这是一个好方法吗?还是我应该坚持使用更难的方法?

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

1 回答 1

0

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

  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

  1. 另一种选择是使用单例进行相同的操作(如果您为项目创建了一些 REST 客户端单例)

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

还有更多选择,但我认为这就足够了.. 如果您想尽快使用这些实用程序。如果你想用最好的架构来做,那么就选择这个类别。

于 2016-08-01T15:44:22.457 回答