2010-10-18 6 views
3

J'ai une application qui affiche 10 images et chaque image est associée à un bouton et un lien URL. Je voudrais libérer cette application, mais être en mesure de mettre à jour les images et les liens via le Web sans avoir besoin de faire une mise à jour de l'application.La meilleure façon de charger du contenu à partir du web

Je sais que je peux tirer des images du web comme ceci:

NSURL *url = [NSURL URLWithString: @"http://example.com/image.png"]; 
NSData *data = [NSData dataWithContentsOfURL: url]; 
UIImage *image = [UIImage imageWithData: data]; 
UIImageView *imageView = [[UIImageView alloc] initWithImage: image]; 

Je suppose qu'il est également possible de tirer un plist du web aussi bien?

Qu'en est-il des fichiers .xib et .h/.m? Pourrais-je demander à mon application de vérifier une certaine URL pour les nouveaux fichiers .xib/.h/.m chaque fois qu'elle s'exécute, et lorsque je téléchargerai ces fichiers sur cette URL dans deux semaines, les utilisateurs de l'application la chargeront des dossiers?

Ainsi, au lieu de charger une classe/xib de mes ressources comme ceci:

UIViewController *nextController = [[ClassName alloc] initWithNibName:@"ClassName" bundle:nil]; 

Je remplacerais en quelque sorte le ClassName avec de nouvelles données tirées du web?

J'ai vu des applications qui récupèrent de nouvelles données (généralement des images/textes simples - comme les mises à jour occasionnelles de Doodle Jump) sur le Web sans que les utilisateurs aient à télécharger une mise à jour. Toute aide avec les premiers pas pour y arriver serait grandement appréciée ... Merci!

Répondre

2

Stockez tous vos éléments de départ qui sont regroupés dans votre application dans le dossier de ressources. Lors du premier chargement, copiez par programme tous ces éléments dans le chemin d'accès à la bibliothèque du bundle. Votre application ne doit alors traiter que les données contenues dans le répertoire de la bibliothèque. Lorsque votre application se connecte pour la première fois au Web, vous pouvez enregistrer les nouvelles données dans le chemin de la bibliothèque de l'utilisateur et remplacer les anciennes.

Il est impossible d'écrire dans le répertoire du regroupement d'applications une fois qu'il a été compilé, car cela casse la signature d'Apple.

Ceci est juste une suggestion de haut niveau, évidemment. Sans savoir exactement ce que vous voulez faire, il est difficile de donner une réponse détaillée. Mais oui, le téléchargement et le stockage de données sont autorisés, mais pas à l'intérieur de l'ensemble d'applications. Vous ne pouvez pas lui envoyer de nouveaux fichiers .h/.m ou xibs, malheureusement.

1

Vous pouvez charger des ressources à partir du Web, mais vous ne pouvez pas "compiler" quoi que ce soit dans une application en cours d'exécution. Les fichiers .m/.mh/.xib ne sont donc pas utilisables.

Vous pouvez certainement charger un plist (ou un autre fichier de données) et l'utiliser pour référencer des images et des liens différents. (Le http://example.com/image.png ci-dessus pourrait être dynamique dans ce sens.)

Questions connexes