2009-10-13 17 views

risposta

103

Guardando la documentazione NSError mi dice che è necessario fare qualcosa di simile:

NSLog(@"%@",[error localizedDescription]); 

Questo dovrebbe poi danno in uscita leggibile

+2

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. –

+0

Grazie, ho visto questa funzione, ma non ho capito perché il registro mi stava dando (nulla). –

19
NSLog(@"Error: %@", error); 

mi dà un messaggio Null

Poi error è nil, non un'istanza NSError.

+0

Grazie, questo aiuta molto. Pensavo di fare qualcosa di sbagliato. Qual è il modo migliore per registrare un errore allora? –

+0

Non ha bisogno di dereferenziare anche il 'NSError **'? – fbrereto

+1

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. –

2

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.

+2

Ovviamente è utile solo su Mac. UIKit non ha NSAlert. –

+0

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

Problemi correlati