2010-11-23 41 views
1

Je développe une application iOS qui (comme toute autre) nécessite une certaine quantité de mémoire libre pour fonctionner correctement. Dans mon cas - au moins 4 Mo, je ne peux pas utiliser moins que cela. C'est une assez petite quantité, mais quelques fois (sur mon appareil au moins) je n'ai que 2 Mo de libre et le programme s'est écrasé. À votre avis, quelle est la meilleure façon de dire aux utilisateurs de combien de mémoire vous avez besoin. Je connais le code pour obtenir la mémoire actuellement disponible, mais même si je dis à l'utilisateur (comme dans un UIAlertView quand l'utilisateur démarre le programme) qu'il est en panne, que puis-je lui suggérer de faire pour libérer plus de mémoire (sauf tourner éteint et sur l'appareil). Des idées?Comment informer les utilisateurs de la quantité de mémoire dont a besoin votre application iOS

+0

D'où obtenez-vous ces numéros de taille de mémoire, l'instrument Object Allocations ou le Memory Monitor? Ce dernier vous donnera une lecture plus précise de la taille totale de la mémoire de votre application (qui est probablement supérieure à 4 Mo). –

+0

Bonjour, Brad :) J'utilise les allocations d'objet de l'instrument, je n'ai même pas entendu parler de Memory Monitor :) Je vais vérifier pour le faire et essayer :) Merci :) – cpprulez

Répondre

0

Sur quels types d'appareils iPhone votre application est-elle testée? Je suppose que l'iOS doit bien faire son travail pour libérer suffisamment de mémoire pour vous ou tuer l'application de fond alll afin qu'il puisse avoir plus de mémoire

+0

Merci pour la réponse très rapide :) Bien , Je l'ai testé sur iPod Touch 2G. Je ne pense pas que la mémoire sera un problème pour l'iPad ou l'iPhone 4, mais il y a peut-être un problème pour l'iPhone 3G/3GS, qui a moins de mémoire sur eux. – cpprulez

+0

Il ne devrait pas y avoir de problème avec iPhone 3G/3GS, qui a environ 128-256 Mo de RAM et généralement disponible au moins la moitié d'entre eux – vodkhang

+0

C'est vrai, mais lorsque l'utilisateur démarre et quitte différents programmes, l'iPhone ne supprime pas toujours l'intégralité mémoire qu'ils utilisaient et l'espace libre disponible réduit. iPod Touch 2G a également 128 Mo de RAM, mais quelques fois la mémoire libre était seulement 2 Mo et même moins. – cpprulez

1

Sur les appareils plus anciens, vous ne pouvez pas vraiment compter sur plus de 8 Mo. 4Mo est une excellente cible, et si par le biais de votre profilage vous avez déterminé que c'est tout ce dont vous avez besoin, vous devriez aller bien.

Cependant, je pense que le concept ici est que si vous recevez des avertissements de mémoire, vous ne dérangez pas l'utilisateur avec ce genre de choses. Je trouverais cela assez ennuyeux moi-même. Il serait préférable de limiter l'activité de votre application ou de réduire ce que vous faites, ce qui nécessite beaucoup de mémoire.

+0

Je suis entièrement d'accord avec cela - je pense que la présentation à l'utilisateur d'un message concernant les détails de l'implémentation de l'application va à l'encontre de tout ce que iOS essaie de réaliser. – mikecsh

+0

Bonjour, slf :) Je sais que c'est agaçant, mais je ne vois pas d'autre option. Le problème est que je suis en train de développer un réveil, et il faut 4 Mo quand une alarme est déclenchée. Donc, si à ce moment l'utilisateur n'a pas assez de mémoire libre, l'application se termine, et le son de l'alarme n'est pas joué, d'où l'utilisateur est en retard au travail :) Donc je dois l'informer d'un échec potentiel (je préfère que obtenir de mauvaises critiques sur l'AppStore) :) Merci :) – cpprulez

+0

Il faut 4 Mo pour jouer un son d'alarme? Des gamins. Je me souviens quand tout ce que nous avions était 4KB pour tout notre programme, et nous l'avons aimé. :-) –