2010-07-25 28 views
7

Donc, j'ai une application de base pour stocker, rechercher et manipuler des données. Opérations de base de CRUD. En divers endroits de mon code où j'entreposent ou mettre à jour ces données, j'ai essentiellement ceci:Comment gérer correctement les données de base enregistrer les erreurs par rapport à l'expérience utilisateur sur iPhone?

NSError *error; 
if (![self.managedObjectContext save:&error]) { 
    // TODO: Handle this error 
    NSLog(@"Error while saving data %@, %@", error, [error userInfo]); 
} 

Que la plupart des gens, l'expérience-utilisateur sage, quand ce genre de choses viennent?

La seule chose qui vient à l'esprit est de juste apparaître un horrible UIAlertView avec un message vague que quelque chose s'est mal passé; pas vraiment sûr de savoir comment récupérer ces choses. Par souci d'argument, supposons que mon modèle a peu ou pas de validations, donc les seules erreurs qui pourraient se produire seraient quelque chose d'horriblement mauvais ou un problème de programmation.

De bonnes idées sur l'expérience de l'utilisateur?

+0

L'utilisateur peut-il faire quelque chose à ce sujet? Ou est-ce entièrement hors du contrôle de l'utilisateur? Y at-il ** rien ** qu'ils peuvent faire à court d'éteindre l'ordinateur? –

+0

Oui, supposons que c'est une situation où ils ne peuvent pas faire grand chose; comme un appel à [NSManagedObjectContext save:] a échoué. – davetron5000

Répondre

5

Jakob Nielsen a un few concise guidelines que vous voudrez peut-être vérifier; de tout ce qu'il propose, celui que je vous suggère fortement d'indiquer dans un message d'erreur que ce n'est pas la faute de l'utilisateur. D'après ma propre expérience des tests utilisateur, la plupart des utilisateurs pensent qu'ils ont fait quelque chose de mal lorsqu'une erreur est apparue, ce qui engendre de la frustration.

Peut-être quelque chose comme:

Il y avait un problème de sauvegarde: ne vous inquiétez pas ce n'est pas votre faute! Si vous redémarrez l'application, vous pouvez réessayer. Mais s'il vous plaît contactez [contact développeur] et dites-lui l'erreur était [code d'erreur court, mémorable]

0

Dans un cas comme celui-ci, je pense que la meilleure chose à faire serait de présenter une alerte à l'utilisateur et de quitter l'application.

+0

Des conseils sur le libellé? Je les ai mis dedans, et je me suis retrouvé avec beaucoup de boiteux "C'était une erreur en sauvegardant votre Widget, s'il vous plaît essayez de redémarrer l'application". Je déteste ça, mais je ne sais pas quoi faire d'autre ?! – davetron5000

0

La réponse courte est que j'ai jamais eu une erreur de sauvegarde se produire dans la production. Normalement, je fais ces affirmations et les font planter l'application. C'est pour s'assurer que je les attrape pendant le développement.

Si votre application est bien écrite, vous ne devriez pas en avoir une quand un utilisateur exécute l'application. Comme pour le texte, cela dépend de votre application et il n'y a pas de règle générale pour eux.

+0

Bien que je sois d'accord avec le sentiment, ne devriez-vous pas gérer ceux-ci d'une certaine manière, simplement pour gérer les cas limites que vous avez manqués, ou ceux qui sont gérés, mais pour une raison quelconque se produisent de toute façon? (Par exemple, un dysfonctionnement de l'appareil a causé un peu de retourner) – RonLugge

+0

une fois que vous commencez à ajouter des règles de validation ou des contraintes uniques, vous obtiendrez des erreurs de sauvegarde. – malhal

+0

Seulement si vous ne les gérez pas correctement dans votre interface utilisateur et/ou si vous fusionnez des stratégies. –