Qual è il modo migliore per registrare un NSError
?Come posso visualizzare un NSError?
- (void)checkThing:(Thing *)thing withError:(NSError *)error {
NSLog(@"Error: %@", error);
}
mi dà un messaggio null
Qual è il modo migliore per registrare un NSError
?Come posso visualizzare un NSError?
- (void)checkThing:(Thing *)thing withError:(NSError *)error {
NSLog(@"Error: %@", error);
}
mi dà un messaggio null
Guardando la documentazione NSError mi dice che è necessario fare qualcosa di simile:
NSLog(@"%@",[error localizedDescription]);
Questo dovrebbe poi danno in uscita leggibile
NSLog(@"Error: %@", error);
mi dà un messaggio Null
Poi error
è nil
, non un'istanza NSError.
Grazie, questo aiuta molto. Pensavo di fare qualcosa di sbagliato. Qual è il modo migliore per registrare un errore allora? –
Non ha bisogno di dereferenziare anche il 'NSError **'? – fbrereto
La domanda originale non aveva due asterischi. Abizern ha aggiunto il secondo asterisco; Ho ripristinato la sua modifica, perché non penso che abbia senso per la domanda vera e propria. Se si trattasse di un argomento a doppio asterisco, sarebbe generalmente (come per un NSError) un argomento * output *, quindi il metodo non dovrebbe tentare di recuperare un oggetto attraverso quel puntatore. –
Ecco un metodo di massima che uso per registrare gli errori mentre sviluppando; (Non per Cocoa-touch)
// Execute the fetch request put the results into array
NSError *error = nil;
NSArray *resultArray = [moc executeFetchRequest:request error:&error];
if (resultArray == nil)
{
// Diagnostic error handling
NSAlert *anAlert = [NSAlert alertWithError:error];
[anAlert runModal];
}
NSAlert si occupa di visualizzare l'errore.
Ovviamente è utile solo su Mac. UIKit non ha NSAlert. –
Sì! Non ho letto i tag. Grazie per il rollback sulla modifica. Continuo a pensare che questa risposta sia utile per lasciare spazio agli altri, purché prendano nota che è solo per il desktop. – Abizern
Bene, ha bisogno di avere un errore per ottenere una descrizione di, prima. E la 'descrizione' dell'errore contiene (al momento) almeno il dominio e il codice dell'errore, che può essere più utile in un messaggio di log della console. –
Grazie, ho visto questa funzione, ma non ho capito perché il registro mi stava dando (nulla). –