2016-04-17 6 views
1

In meiner iOS-Anwendung habe ich Pull-Replikation eingerichtet. Hier ist der Codecouchbase ios sdk - Wie Daten im Hintergrund kontinuierlich repliziert werden.

- (void) prepareCouchBaseAuthentication : (NSArray *)arrUserId { 
NSError* error; 

CBLManager* mng = [CBLManager sharedInstance]; 
CBLDatabase *database = [mng databaseNamed: kDatabaseScore error: &error]; 

if (!database) { 
    [self showAlert: @"Couldn't open database" error: error fatal: YES]; 
    return; 
} 

NSURL* serverDbURL = [NSURL URLWithString: kServerScoreURL]; 


objAppDelegete.pull = [database createPullReplication: serverDbURL]; 
objAppDelegete.pull.continuous =YES; 

objAppDelegete.pull.channels = arrUserId; 


NSNotificationCenter* nctr1 = [NSNotificationCenter defaultCenter]; 
[nctr1 addObserver: self selector: @selector(replicationProgressScore:) 
       name: kCBLReplicationChangeNotification object: objAppDelegete.pull]; 

[objAppDelegete.pull start]; 
} 

Ich habe versucht, diese Funktion mit NSThread zu nennen, wie in der Dokumentation vorgeschlagen Couchbase

[NSThread detachNewThreadSelector: @selector(prepareCouchBaseAuthentication) toTarget:self withObject: nil]; 

Aber nachdem es irgendwann die Synchronisierung stoppen? Gibt es eine Ausnahme während der Synchronisierung? Wie kann ich prüfen, ob eine Ausnahme aufgetreten ist?

Meine Anforderung ist kontinuierliche Synchronisierung Live-Feed von Couchserver. Ja, es wird die Batterie entladen. Gibt es einen Vorschlag, dies zu tun?

Antwort

3
  • Lauf kontinuierlich: eine Eigenschaft continuous auf dem Replikator-Objekt aufgerufen wird (es in Ihrem Codebeispiel aktiviert ist), die es für Änderungen in der lokalen Datenbank (für eine Push-Replikation) und Remote-Datenbank zu hören erzählt (für eine Pull-Replikation). Dies wird kontinuierlich geändert, bis Sie replication.stop() anrufen.

  • Laufend im Hintergrund läuft: Es wird ein bisschen schwierig, eine Replikation kontinuierlich im Hintergrund laufen zu lassen (wenn die App geschlossen ist). Ich schrieb einen Beitrag über die Verwendung der API für den Hintergrundabruf unter iOS(). Das Betriebssystem wird den Hintergrundabrufdienst periodisch aktivieren und eine einmalige Pull-Replikation initiieren. Ein anderer Weg wäre, die Replikation zu starten, wenn Sie eine stille Push-Benachrichtigung vom Server erhalten.

Verwandte Themen