Le langage toujours a leurs erreurs célèbres et douloureuses. Je serai amusant d'apprendre quelles erreurs gagnent cette réputation lors du développement de l'iPhone. P>
Veuillez énumérer le vôtre! p>
Je suis d'accord avec Genericitypea Si vous pouvez, indiquez le code / message d'erreur et la cause à faire pour un poste plus utile. p>
9 Réponses :
Je déteste celui-ci Exc_bad_access (parfois appelé exécu_bad_access) p>
Je déteste toutes les erreurs de synchronisation de l'appareil comme p>
"iTunes n'a pas pu se connecter à iPhone car une erreur inconnue s'est produite (0xE8000025)" P>
oh l'humanité. P>
Je dirais que l'erreur la plus frustrante est en réalité l'erreur que n'arrive jamais forte>. Par exemple. Lorsque vous avez un iboutlet code> qui n'a pas été correctement "branché", plutôt d'obtenir un nullpointexception code> ou d'une autre, le code ne fait que rien. Pourquoi l'envoi d'un message à un objet "NULL" n'a-t-il pas lancé une exception? GRR .... P>
Parce que le gain que vous ne recevez pas de ne pas avoir à vérifier les valeurs nulle partout (voir: Java) est beaucoup plus vaste que le mauvais partage occasionnel que vous obtiendrez d'avoir un message aller à un objet NIL lorsque vous vous attendiez à ce qu'un objet soit présent. Dans le développement des applications du consommateur, le code qui empêche la course à pied est toujours préférable de coder qui se bloque ...
Je ne pouvais pas être en désaccord plus. Mon temps de développement est beaucoup plus précieux que les quelques nanosecondes qu'il prend la JVM pour détecter une référence nulle.
Bien sûr, c'est Objective-C (plus qu'à un JVM) qui prend les rares nanosecondes supplémentaires pour détecter les NIA afin de faire face à une affaire particulière.
Ne pas avoir à vérifier que les nulles partout permettent d'économiser une quantité considérable de code et de temps de développement. Si vous voulez vraiment vous garantir que vos iboutlets sont connectés, j'ai constaté que vous avez constaté qu'avec Assert (Youroutlet! = Nil) pour chaque sortie au sein d'Awakefromnib ou similaire, c'est un bon travail de test.
Je sauvegarde beaucoup plus de temps de développeur de ne pas avoir à vérifier NIL et à utiliser cette capacité à écrire intelligemment du code qui s'appuie sur les messages de passage à la nulle, que je ne voudrais jamais avoir une question de référence accidentelle. N'oubliez pas que l'objectif-c est au cœur un message de passage de message, et pas vraiment C. J'écris des applications pour l'iPhone à temps plein depuis plus d'un an maintenant et que je n'ai eu qu'un objet nul causer un problème deux fois et les deux Les temps étaient des problèmes d'assurance-chômage simples où quelque chose manquant ou une action n'a pas réussi à déclencher, que j'ai fixé dans environ une minute.
@Brad Larson- OK, afin de détecter si mes points de vente sont connectés, je dois écrire un code supplémentaire ... bien, mais cela "économise une quantité énorme de code" Comment? Je sais que ce n'est qu'une différence fondamentale entre les langues de l'OBJC et Java. Je comprends d'où vous venez d'où vous venez, mais je préfère le système de détecter de telles situations comme des erreurs de programmation et échouez de manière appropriée. Je préfère beaucoup que le système échoue et arrête, que de continuer à prétendre que tout va bien, quand ce n'est en fait pas. Cela fait partie du processus de débogage normal que vous devez faire avant de relâcher votre code.
@Caffeinecoma totalement accepté avec votre point. Si, par exemple, je sauve quelque chose dans une base de données, mais certaines valeurs sont NULL / NIL par erreur, il est donc beaucoup mieux pour l'application de lancer une exception de pointeur nulle plutôt que de corrompre complètement la base de données sur la période donnée. Et dans le monde réel aussi, lorsque vous ne soulevez pas quels problèmes vous rencontrez, les chances sont moins que les problèmes sont résolus.
Toute erreur qui a à voir avec la signature de code. P>
Cela s'est amélioré dans Xcode 3.1.3, mais je déteste la quantité de temps que je perds par jour en attente de la signature de code.
Envoi AutoRelease code> à un objet que vous ne possédez pas, l'application se bloque avec un exc_bad_access et vous n'avez aucune idée lorsque l'objet est sorti. P>
Mon erreur la plus détestée est lorsque vous téléchargez l'exemple de code pour vérifier quelque chose, allez-y l'exécuter et réalisez qu'il est défini pour exécuter sur l'appareil lorsque vous n'avez pas changé l'identifiant de l'ensemble et que le code n'est pas signé. p>
Je déteste particulièrement cette erreur. P>
Merci d'avoir soumis [Application Nom ici] à l'App Store. Nous avons examiné l'application et, compatible avec les critères de notre Processus d'approbation, nous avons choisi de ne pas publier cette demande. Comme toi savoir que Apple se réserve le droit, dans sa seule discrétion, pour rejeter un application pour une raison quelconque. p> blockQuote>
Cette erreur ne m'a jamais eue. Néanmoins +1 parce que je suis tellement effréné.
Je méprise l'erreur à propos de "GCC sorti avec le code d'état 1" et aucune autre information. P>
Je l'aime et détestez-le que vous pouvez envoyer des messages aux objets nuls. Je l'aime parce que vous n'avez pas à vérifier NIL partout. Je déteste parce que parfois, vous recherchez cette erreur pendant des heures lorsque tout ce que vous faites est envoyé un message à un objet NIL. Dans ce cas, une erreur aurait été belle p>
Que diriez-vous de répertorier le code d'erreur / le message et la cause? Pourrait faire pour un post plus utile.
J'aime les vraies questions. Pas ces questions subjectives qui ne devraient pas être posées (cf. Stackoverflow.com/faq ) ...
@Burkhard: Je suis d'accord. Je me demande quel but ces questions ont. Aidez-ils que quiconque à programmer mieux? Est-ce qu'ils résolvent un problème? Probablement, ils servent que pour poser une question et peut-être gagner quelques représentants.
J'aime aussi de vraies questions. Cependant, après avoir des difficultés pendant des heures, il est agréable de se connecter à une communauté qui partage votre douleur et votre plaisir.
Ce serait bien si nous avions un endroit séparé sur Stackoverflow.com pour vous connecter à la communauté.
Ce serait bien plus utile (et plus dans l'esprit de SO), si une cause / solution au message d'erreur est fournie. Pourquoi ne pas reformuler la question comme suggérée par la génératriceyPetea?