2016-08-01 18 views
0

Was ich tun möchte, ist ein weiteres Speichern jederzeit saveInBackgroundWithBlock wird in meiner App aufgerufen. Ich mache das, um ein "Logbuch" von allem zu erstellen, was sich ändert und wer es geändert hat. Ich habe in das PFObject.h geschaut, aber ich bin mir nicht sicher, wie ich das in Obj-C schreiben soll oder wo sonst/wie ich das tun könnte, außer durchzugehen und es zu jedem einzelnen Fall hinzuzufügen. Ist das ein guter Weg? Oder sollte ich es durchhalten und den härteren Weg gehen?Parse saveInBackgroundWithBlock zusätzliche Aufgabe

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

Antwort

0

Sie haben mehr Möglichkeiten, um diese Art von Funktionalität zu erreichen:

  1. erstellen Util-Klasse, die PFObject und PFBooleanResultBlock als Parameter dieser Util Klasse erhält einen Anruf ausführen innerhalb des Rückrufs saveInBackgroundWithBlock können Sie implementieren Sie den zusätzlichen Speicher, den Sie benötigen. am Ende sollte Ihr Util-Klasse wie folgt aussehen:

@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. Eine weitere Möglichkeit ist Mach dasselbe, aber mit Singleton (wenn du ein REST Client Singleton für dein Projekt erstellt hast)

  2. Eine weitere nette Option ist Kategorie auf dem PFObject zu schaffen und ein Verfahren, das genau wie das Verfahren das gleiche tun zu schaffen, dass der util

Es gibt mehr Optionen, aber ich denke, dass es ist genug .. Wenn Sie es so schnell wie möglich tun möchten, verwenden Sie die Dienstprogramme. Wenn Sie es mit der besten Architektur tun wollen, dann gehen Sie mit der Kategorie.