2010-08-13 3 views
1

J'ai une fuite de mémoire dans mon application, mais je n'arrive pas à comprendre pourquoi. Si je libère ces objets, l'application se bloque. Est-ce un problème d'approuver mon application par apple?Est-ce que Apple approuve l'application iOS avec des fuites de mémoire?

+1

Les fuites de mémoire ne plantent pas une application (à moins que vous ne dépassiez la limite de mémoire de l'appareil), ce que vous rencontrez est probablement [pointeurs pendants] (http://en.wikipedia.org/wiki/Dangling_pointer) . Ceux-ci sont très désagréables, car ils pourraient planter votre application dans des endroits très inattendus. –

+1

Quelque chose avec le mot "balancer" dans ce n'est probablement pas une bonne chose – iwasrobbed

+0

duplication possible de [Est-ce que Apple rejette les applications de l'iPhone de fuite?] (Http://stackoverflow.com/questions/1136511/does-apple-reject-leaking- iphone-apps) –

Répondre

18

La réponse à votre question initiale est "Oui", Apple l'approuvera, à condition de ne pas la tester suffisamment longtemps pour que l'application soit à court de mémoire. Ils passent très peu de temps à tester des applications, donc vous allez probablement les utiliser. Je ne suis pas d'accord avec l'intervenant qui a dit que vous n'avez pas de code d'écriture d'entreprise si vous ne pouvez pas réparer une fuite de mémoire. Je suis d'accord que nous devrions viser un code parfait, mais la réalité est que c'est une décision d'affaires que vous devez prendre pour vous-même. Il y a un certain nombre de facteurs qui pèsent dans cette décision, et une application «parfaite» n'est pas nécessairement l'application la plus rentable.

se rapportant à votre décision:

  1. Quelle est la taille de la fuite?
  2. À quelle fréquence vos utilisateurs le rencontreront-ils? Si c'est une fuite dans une cellule de table avec 100 lignes, alors vous avez un gros problème. Si c'est une fuite dans un écran de préférences, vous pouvez probablement le corriger plus tard, car l'utilisateur typique ne le frappera que de temps en temps.
  3. Quel est le coût de retarder le lancement de votre application afin de réparer la fuite de mémoire? Comparez cela avec le coût de la réparation de la fuite.
  4. S'il y a un risque important que plus de 1/1000 personnes manqueront de mémoire en raison de votre fuite, alors vous voudrez vraiment le réparer. Ces personnes vous donneront suffisamment d'avis 1 étoile pour nuire à vos notes.

Enfin, je recommande définitivement de publier votre code qui fuit à StackOverflow comme une question distincte.

1

Si votre application tombe en panne, elle ne sera probablement pas approuvée.

+2

Si l'application tombe en panne, ils ne l'appuieront pas. Mais s'il y a des fuites de mémoire qui ne font pas de mal (pas de plantages, etc.), alors Apple appuiera probablement l'application ... – dododedodonl

+2

Si l'application a des fuites de mémoire c'est seulement une question de temps quand elle se bloque. – RaYell

Questions connexes