Ho la seguente porzione di codice:stringWithUTF8String fallisce, ma solo qualche volta
NSData *data = [NSData dataWithContentsOfFile:filePath options:0 error:&fileError];
NSString *recipe = @"";
if (fileError == nil) {
recipe = [NSString stringWithUTF8String:[data bytes]];
NSLog(@"Converted Recipe as: %@",recipe);
NSLog(@"Original Data was: %@",data);
} else {
NSLog(@"Error reading file: %@", [fileError localizedDescription]);
}
Il problema è che a volte lo stringWithUTF8String restituisce null e talvolta restituisce correttamente il contenuto del file ... Il file STESSO. A volte funziona e altre volte no. Ecco uno snippet dal log quando non lo fa .... Il che significa che il file letto funziona, ma per qualche motivo la conversione non è riuscita questa volta. Se lo faccio di nuovo (questo è chiamato come il risultato di un tableView didSelectRowAtIndexPath: Quindi posso solo cliccare su una riga diversa e poi tornare a questo
2010-08-01 16:14:29.031 RecipeBrowse[52056:207] Converted Recipe as: (null)
2010-08-01 16:14:29.037 RecipeBrowse[52056:207] Original Data was: <426c6163 6b656e65 64204361 626f2046 69736820 5461636f 730a0a49 4e475245 4449454e 54533a0a 0a2d200a 0a0a4d45 54484f44 3a0a0a42 4c41434b 454e4544 20434142 4f204649 53482054 41434f53
Delle idee come renderlo più affidabile.? ?
Torna indietro e leggi i documenti sulla gestione degli errori. NON testare MAI se l'errore non è zero; Verificare SEMPRE il valore restituito (dati in questo caso). –