2016-08-01 33 views
0

我想要做的是在任何時候導致另一次保存saveInBackgroundWithBlock在我的應用程序中被調用。我這樣做是爲了創建一個「日誌」的變化和誰改變它的一切。我查看了PFObject.h,但我不確定如何在Obj-C或其他地方如何正確編寫它,以及如何才能做到這一點,而不是將其添加到每個實例中。這是做這件事的好方法嗎?或者我應該堅持下來並使用更難的方法?解析saveInBackgroundWithBlock附加任務

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

回答

0

你必須爲了多種方式來實現這種功能:

  1. 創建其接收PFObject和PFBooleanResultBlock作爲參數此的Util類將執行調用回調函數,你可以在裏面saveInBackgroundWithBlock的Util類實施您需要的額外保存。在結束您的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的

  • 有更多的選擇的方法,但我認爲這已經足夠了。如果你想盡可能快地使用這些工具,就可以使用它。 如果你想用最好的體系結構來實現,那麼就去分類。