2010-09-17 8 views
0

Je crée une application à plusieurs couches d'iPhone en utilisant un contrôleur de navigation et l'application comprend un grand nombre d'images dans toutes les couches. Je me demandais si c'est une bonne idée d'utiliser une base de données SQLite pour stocker toutes les images et les extraire sur la page si nécessaire ou devrais-je simplement ajouter toutes les images dans le dossier ressources et les insérer dans l'application? J'ai déjà utilisé une base de données SQLite dans une application, mais l'application était encore un peu lente. Y a-t-il autre chose que je puisse faire pour améliorer la vitesse de l'application? Je suis tout ouïe, toute aide est appréciée. Merci d'avance.Images iPhone app

Répondre

0

Je ne pense pas que vous obtiendrez une réponse plus rapide de SQLite que le système de fichiers. De toute façon, il est stocké dans un fichier. J'ai peur que ce soit le plus rapide que tu puisses faire. Cela étant dit, vous pouvez vous assurer de charger certains fichiers et vues avant qu'ils ne soient nécessaires si vous avez assez de mémoire pour le faire. Vous pouvez le faire de manière asynchrone pendant qu'une autre partie de l'application s'exécute en utilisant la méthode performSelectorInBackground de NSObject. En outre, vous pouvez réduire les temps de chargement et de traitement en optimisant la largeur et la hauteur des images avant leur utilisation cible. Cela fait une énorme différence dans la charge et le temps de présentation lorsque vous avez beaucoup d'images.

1

Si vos images ne changent jamais, il y a quelques avantages que vous gagnerez de [UIImage imageNamed:], qui est la mise en cache des données. Dans votre cas, le chargement des ressources doit également être plus rapide que l'accès à la base de données, car vous accédez directement à la ressource au lieu de passer par la couche d'accès à la base de données. La mise en cache vous permet également de ne pas devoir gérer vous-même la mise en cache des données, mais vous devrez peut-être la libérer de UIImageView lorsqu'elle n'est pas visible pour permettre à la bibliothèque de purger le cache en cas de besoin.

0

Une chose à vérifier est combien de temps cela prend-il pour interroger la base de données?

Vérifiez combien de temps il faut dès le début de requête jusqu'à ce que les résultats sont renvoyés. Si cela est lent, assurez-vous d'avoir indexé la colonne que vous utilisez dans votre instruction "where".

Vous pouvez vérifier rapidement avec cette génial SQLite GUI http://menial.co.uk/software/base/ et/ou ajouter ces.

je recevrais les données du système de fichiers.