我想要做的是在我的应用程序中调用 saveInBackgroundWithBlock 时再次保存。我这样做是为了创建所有更改以及谁更改它的“日志”。我查看了 PFObject.h,但我不确定如何在 Obj-C 中正确编写它,或者除了通过并将其添加到每个实例之外,我还能在哪里/如何做到这一点。这是一个好方法吗?还是我应该坚持使用更难的方法?
- (void)saveInBackgroundWithBlock:(nullable PFBooleanResultBlock)block;
我想要做的是在我的应用程序中调用 saveInBackgroundWithBlock 时再次保存。我这样做是为了创建所有更改以及谁更改它的“日志”。我查看了 PFObject.h,但我不确定如何在 Obj-C 中正确编写它,或者除了通过并将其添加到每个实例之外,我还能在哪里/如何做到这一点。这是一个好方法吗?还是我应该坚持使用更难的方法?
- (void)saveInBackgroundWithBlock:(nullable PFBooleanResultBlock)block;
您有多种方法可以实现这种功能:
@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 方法完全相同的方法
还有更多选择,但我认为这就足够了.. 如果您想尽快使用这些实用程序。如果你想用最好的架构来做,那么就选择这个类别。