2014-11-08 16 views
5

sto sporadicamente ottenendo un erroresporadici Impossibile leggere il file Error - File non esiste

*** Chiusura di applicazione a causa di eccezione non identificata 'NSInvalidArgumentException', la ragione: 'Impossibile leggere il file al file: /// var/mobile/Applications/D743821C-6F34-4E97-8FBA-D7EAD6738E38/Documenti/contacts.zip

*** In primo stack di chiamate tiro: (0x2ef1ef83 0x39799ccf 0x2eb5f7c3 0x2eb5f2dd 0x39c8181f 0x39c87677 0x2eb5f289 0x2eb9897f 0x172cb9 0x17bac3 0x5b769 0x160d99 0x69f2d 0x698cb 0x1709c7 0x17a9a3 0x39c81833 0x39c88ad7 0x39c88d29 0x39dc3bd3 0x39dc3a98) libC++ abi.dylib: terminazione con eccezione non rilevata di tipo NSException

Il programma cade sopra alla linea

Info.uploadTask = [self.session uploadTaskWithRequest:request fromFile:url]; 

Quando guardo su nel contenitore dispositivo vedo il file non c'è.

Non capisco

  1. perché il esiste al momento del check percorso passa se il file non esiste
  2. il motivo per cui il programma non riesce, anche se è in un blocco try cattura

    NSString *path = file.myPath; 
    if ([[NSFileManager defaultManager] fileExistsAtPath:path]) { 
        @try { 
         NSURL *url = [NSURL fileURLWithPath:path]; 
         Info.uploadTask = [self.session uploadTaskWithRequest:request fromFile:url]; 
        } 
        @catch (NSException *exception) { 
         BLog("error Reading file:%@",path); 
         return; 
        } 
    } else { 
        BLog(@"file not found:%@",path); 
        return; 
    } 
    
+1

Hai mai trovato una soluzione per questo? Stiamo vivendo un comportamento simile. –

+0

Il problema sembrava risolversi da solo. –

+0

Sto riscontrando lo stesso problema, se qualcuno trova una soluzione, per favore condividi – IdoT

risposta

1

Quindi ho avuto esattamente lo stesso problema: NSURLSession non è riuscito a leggere il file per qualche motivo. Tuttavia, sono in grado di rilevare un'eccezione utilizzando lo stesso codice che hai. Ho creato una categoria per comodità:

@implementation NSURLSession (DMAdditions) 
- (NSURLSessionUploadTask * _Nullable)crashFreeUploadTaskWithRequest:(NSURLRequest *)request fromFile:(NSURL *)fileURL { 
    @try { 
    return [self uploadTaskWithRequest:request fromFile:fileURL]; 
    } 
    @catch (NSException *exception) { 
    NSLog(@"We crashed: %@", exception); 
    return nil; 
    } 
} 
@end 
+0

Non posso contrassegnarlo come la risposta corretta, dal momento che non riesco a riprodurre –

+0

È facile farlo andare in crash, basta dargli un brutto URL. Crollerà con lo stesso errore. – almas

Problemi correlati