Question

Si je reçois un code d'erreur suite à partir d'un Cacao de fonction, est-il un moyen facile de comprendre ce que ça signifie (autre que par grepping à travers tous les .h fichiers dans le cadre de faisceaux)?

Était-ce utile?

La solution

Vous devriez regarder la <Framework/FrameworkErrors.h> l'en-tête pour quelque cadre de la méthode que vous utilisez c'est de retourner une erreur vient de.

Par exemple, un NSError dans le domaine de Cacao que vous obtenez à partir d'une méthode dans le cadre de la Fondation aura sa code la propriété décrite dans la <Foundation/FoundationErrors.h> l'en-tête.De la même façon avec AppKit et <AppKit/AppKitErrors.h> et les Données de Base et <CoreData/CoreDataErrors.h>.

Aussi, si vous imprimez la description de l' NSError dans le débogueur, il devrait inclure non seulement l'erreur de domaine et le code, mais aussi le nom du code d'erreur constante de sorte que vous pouvez regarder dans la référence de l'API.

Autres conseils

Les sections d'Erreur "Domaines" et "Codes d'Erreur" dans Apple Gestion Des Erreurs De Programmation Guide adresse raisonnablement bien.Vous devez faire ce qui suit:

  1. Journal de l'erreur, en tenant compte à la fois de la erreur de domaine (lisible par l'utilisateur / Googleable chaîne qui vous indique où trouver le code d'erreur définitions) et les code d'erreur lui-même (un entier)

  2. Renifler autour sur Google (ou lire à partir de la liste ci-dessous) et à la figure le nom de l'en-tête de fichier(s) où les codes d'erreur pour que l'erreur de domaine sont définis

  3. Recherche de ceux d'en-tête de fichier(s) pour le code d'erreur que vous avez obtenu.Vous devriez trouver à la fois un nom de constante pour le code d'erreur (comme ENOMEM), et j'espère aussi un commentaire explicatif (comme /* Cannot allocate memory */) en expliquant ce que l'erreur signifie.Si il n'y a pas de commentaires, et le nom de constante n'est pas auto-explicatif, il suffit de Google le nom de constante et vous aurez probablement trouver une description appropriée.

Certains fichiers d'en-tête de l'erreur majeure domaines:

NSCocoaErrorDomain

Code d'erreur déclarations sont répartis dans trois fichiers d'en-tête:

  • <Foundation/FoundationErrors.h> (Générique de la Fondation des codes d'erreur)
  • <AppKit/AppKitErrors.h> (Générique AppKit codes d'erreur)
  • <CoreData/CoreDataErrors.h> (Base de Données des codes d'erreur)

NSURLErrorDomain

Vérifier NSURLError.h

NSXMLParserErrorDomain

VérifierNSXMLParser.h

NSMachErrorDomain

Vérifier /usr/include/mach/kern_return.h

NSPOSIXErrorDomain

Vérifier /usr/include/sys/errno.h

NSOSStatusErrorDomain

Vérifier

/System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/MacErrors.h

Aussi, le Cacao est NSError est destiné à être affichables à l'utilisateur final.Si vous suffit de vous connecter, il doit être lisible.

Si vous parlez de Carbone OSStatus et tels, MacErrors.h.

Pour NSError erreurs d'ajouter une ligne de code:

NSError     *error;

// ... Some code that returns an error

// Get the error as a string
NSString *s = [error localizedDescription];

// Observe the code for yourself or display to the user.   
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top