Wie melde ich am besten NSError
?Wie kann ich einen NSError anzeigen?
- (void)checkThing:(Thing *)thing withError:(NSError *)error {
NSLog(@"Error: %@", error);
}
gibt mir ein null
Nachricht
Wie melde ich am besten NSError
?Wie kann ich einen NSError anzeigen?
- (void)checkThing:(Thing *)thing withError:(NSError *)error {
NSLog(@"Error: %@", error);
}
gibt mir ein null
Nachricht
Mit Blick auf die NSError Dokumentation sagt mir, dass Sie so etwas wie tun müssen:
NSLog(@"%@",[error localizedDescription]);
Dies dann Sie hier für Menschen lesbare Ausgabe
NSLog(@"Error: %@", error);
Gibt mir eine Null-Nachricht
Dann error
ist nil
, kein NSError Instanz.
Danke, das hilft sehr. Ich dachte, ich würde etwas falsch machen. Was ist der beste Weg, um einen Fehler zu protokollieren? –
Muss er den 'NSError **' nicht auch dereferenzieren? – fbrereto
Die ursprüngliche Frage hatte keine zwei Sterne. Abizern hat den zweiten Stern hinzugefügt; Ich habe seine Bearbeitung rückgängig gemacht, weil ich denke, dass es für die eigentliche Frage keinen Sinn ergibt. Wenn es ein Doppelstern-Argument wäre, würde es im Allgemeinen (insbesondere für einen NSError) ein * Ausgabe * Argument sein, so dass die Methode nicht versuchen sollte, ein Objekt über diesen Zeiger abzurufen. –
geben sollte eine grobe Methode, das ich verwenden, um Fehler zu protokollieren, während Entwicklung; (Nicht für 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 kümmert sich um die Anzeige des Fehlers.
Natürlich ist das nur auf dem Mac nützlich. UIKit hat keine NSAlert. –
Ja! Ich habe die Tags nicht gelesen. Danke für den Rollback beim Bearbeiten. Ich denke immer noch, dass diese Antwort nützlich ist, um anderen zu überlassen, solange sie merken, dass es nur für den Desktop ist. – Abizern
Nun, er braucht zuerst einen Fehler, um eine Beschreibung zu bekommen. Und die Beschreibung des Fehlers enthält (momentan) zumindest die Domäne und den Code des Fehlers, was in einer Konsolenprotokollnachricht nützlicher sein kann. –
Danke, ich hatte diese Funktion gesehen, aber ich habe nicht verstanden, warum das Protokoll mich gab (null). –