2014-09-11 9 views
9

Sto creando una tastiera personalizzata per iOS 8, e sto avendo un momento difficile capire alcuni problemi con NSURLConnection.La connessione al servizio denominato com.apple.nsurlstorage-cache è stata invalidata

sto usando il sendAsynchronousRequest: metodo come questo:

[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) { 
     NSLog(@"recieved asynchronous response"); 

     if (!connectionError) { 
      [self connection:nil didReceiveData:data]; 
      [self connectionDidFinishLoading:nil]; 
     } 
     else{ 
      NSLog(@"connection failed - %@", connectionError); 
     } 
    }]; 

Tutto questo sembra funzionare correttamente per un periodo di tempo (1-2 giorni), e posso correttamente ricevere i dati. Dopo questa volta ho iniziare a vedere il seguente messaggio di errore: "L'operazione non ha potuto essere completato (errore di cacao 4099.)"

***cachedResponseForRequest:key:handler failed: 

errore di dominio = Codice NSCocoaErrorDomain = 4099 (Il collegamento al servizio denominato com. apple.nsurlstorage-cache è stato invalidato.) UserInfo = 0x17579030 {NSDebugDescription = La connessione al servizio denominata com.apple.nsurlstorage-cache è stata invalidata.}; { NSDebugDescription = "La connessione al servizio denominata com.apple.nsurlstorage-cache è stata invalidata.";

L'unico modo che poi sembra di essere in grado di far funzionare le cose correttamente ancora una volta è quello di ripristinare il contenuto e l'impostazione sul telefono. Se qualcuno potesse indicarmi la direzione corretta del perché questo sta accadendo, sarei molto grato. Grazie in anticipo.

+0

semplicemente disattivando l'accesso completo, e poi di nuovo si rende necessario; ma non è davvero una soluzione –

+0

Considera questa soluzione: http://stackoverflow.com/questions/26830648/couldn-t-communicate-with-a-helper-application-on-10-10 – Soferio

risposta

7

Questa occures perché il dispositivo non ha permesso la tastiera per l'uso di Internet.

Per risolvere questo problema, verificare innanzitutto che l'Info.plist del vostro estensione della tastiera ha il valore "SI" per la chiave "RequestsOpenAccess".

Quindi, dopo aver installato l'app su un dispositivo, andare su Impostazioni -> Generale -> Tastiera -> Tastiere -> e attivare il pulsante "Consenti accesso completo".

+0

Non è il caso, perché lui "Tutto sembra funzionare correttamente per un periodo di tempo (1-2 giorni), e posso ricevere correttamente i dati.", quindi ha già dato questa autorizzazione. –

+0

Quindi forse ha eliminato l'app nel simulatore e quindi ha dovuto dare nuovamente questa autorizzazione: s – Drico

+1

Questo mi ha aiutato. Si noti che 'RequestsOpenAccess' è nidificato all'interno del dizionario' NSExtensionAttributes' (che è esso stesso con 'NSExtension') –

0

Ho anche avuto questo problema. Quando scrivo un widget per la mia app, il widget può utilizzare la rete. Poi ho scoperto come consentire l'uso della rete.

Basta scegliere la destinazione (tastiera) -> Funzionalità -> Accendere App Sandbox -> controllo Rete. connessioni in ingresso (Server) Coonections in uscita (Client)

dispiace^_ ^, ora non posso caricare immagini (perché mi iscrivo solo ora).

5

Ho anche avuto questo problema. Quando scrivo un widget per la mia app, il widget può utilizzare la rete. Poi ho scoperto come consentire l'uso della rete.

Basta scegliere il Target (tastiera) -> Funzionalità -> Accendi Sandbox App -> verifica rete. Connessioni in ingresso (Server) Coonections in uscita (clienti)

0

ho trovato il modo per evitare il problema.

Per risolvere il problema, aggiungere una variabile d'ambiente prima di lanciare i test come segue:

XPC_SIMULATOR_LAUNCHD_NAME = "com.apple.CoreSimulator.SimDevice.04042E78-E743-4376-94E9-31842D4770B6.launchd_sim"

Tuttavia, lo 04042E78-E743-4376-94E9-31842D4770B6 dipende da ciascun ambiente. Quindi non può essere hardcoded. Sto cercando un modo per leggere il valore dalle impostazioni del progetto.

+0

Interessante, puoi offrire ulteriori dettagli su ciò che fa? Non sono ancora riuscito a trovare molta documentazione per XPC_SIMULATOR_LAUNCHD_NAME. – natevw