2016-05-17 5 views
0

Ich verwende Dropbox, um Dateien in die Dropbox eines Benutzers hochzuladen.
Auf dem iPhone funktioniert es einwandfrei, aber auf dem iPad werden die Delegiertenmethoden für die DBRestClientDelegate nicht aufgerufen.
Ich verwende immer noch v1.
Der Code ich benutze istDropbox nicht Delegate Methoden nur auf dem iPad aufrufen

- (DBRestClient *)restClient { 
    if (!_restClient) { 
     _restClient = 
     [[DBRestClient alloc] initWithSession:[DBSession sharedSession]]; 
     _restClient.delegate = self; 
    } 
    return _restClient; 
} 

[[self restClient] uploadFile:[NSString stringWithFormat:@"%@.jpeg",fileName] 
          toPath:@"/" 
        withParentRev:nil 
         fromPath:imagePath]; 

Danach

die delegierte Methode auf dem iPhone telefonieren
- (void)restClient:(DBRestClient*)client uploadedFile:(NSString*)destPath from:(NSString*)srcPath 

erfolgreich aufgerufen wird, ermöglicht mir, zu handhaben. Auf dem iPad wird das jedoch nicht zusammen mit den anderen Delegate-Methoden aufgerufen, nicht die Datei hochladen und keine Fehler werfen.

Alle Gedanken sind willkommen.
Danke,
Luke

Antwort

1

Es gibt ein paar Dinge, die Ihre Delegatmethoden verursachen könnten nicht aufgerufen werden:

  1. Ihr Rest Client nil oder wird freigegeben ist (zum Beispiel durch ARC) vorzeitig.
  2. Sie führen den Aufruf in einem Hintergrundthread aus, der keine Ausführungsschleife hat.
  3. Ihre Delegiertenmethode, die zurückgerufen werden sollte, enthält einen Tippfehler. Leider warnt das SDK Sie nicht, wenn es keine Methode zum Aufrufen von Delegaten finden kann. Es schließt gerade ab, ohne jemandem zu erzählen.
+0

Entschuldigung für die Verzögerung in der Antwort. Das Problem war, dass das 'NSObject', das ich für all meine Share-Sachen benutzte, von ARC veröffentlicht wurde (diagnostiziert mit 'Zombies' in Instrumenten), da ich keinen Hinweis darauf hatte. Ich schickte Bilder über eine Klassenmethode dorthin. Ich habe dies behoben, indem ich eine 'sharedInstance' (Singleton) erstellt und dann die Bilder durch die Parameter einer Instanzmethode gesendet habe. Bingo. – mylogon