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?