2010-07-08 2 views
0

J'ai essayé de trouver des informations sur Internet, mais je n'ai pas pu. Je suis nouveau dans le développement de l'iPhone, mais j'ai déjà appris quelque chose. J'ai créé une application qui analyse le flux RSS et le montre, mais je n'ai pas la moindre idée de la façon de montrer à l'utilisateur les éléments qu'il a déjà lus et ceux qui ne l'ont pas déjà fait. J'ai quelques idées mais je ne sais pas si elles sont bonnes ou ridicules. Peut-être que quelqu'un sait comment cela se fait habituellement dans de nombreux lecteurs RSS existants.Comment le lecteur RSS sait quels articles j'ai déjà lu, et que je n'ai pas?

Merci beaucoup))

Répondre

1

La façon la plus simple est de stocker tous les identifiants rss dans NSUserDefault. Ensuite, lorsque l'application est chargée, il suffit de la charger dans un NSSet et de la comparer à la liste rss

L'autre manière est d'avoir un attribut appelé isRead dans l'objet RSS news (si vous modélisez vos données de telle manière), puis sérialiser toutes les nouvelles en utilisant NSCoding avec encodeWithCoder et initWithCoder pour écrire et récupérer tous les objets et leurs attributs

+0

Merci beaucoup, si je suis en train d'analyser mon RSS à un tableau de dis NSdictionaries, y at-il une manière standard de le vérifier contre NSSet? ou devrais-je utiliser foreach loop? – Burjua

+0

Si vous placez votre rss dans un tableau (ou un dictionnaire), vous pouvez faire une boucle dans tout le tableau pour obtenir un identifiant de chaque élément, puis [définir containsObject: id] pour vérifier si cet id est défini ou non. Si vous avez peur des performances, la performance globale est O (n) pour les tableaux en boucle et O (1) pour containsObject – vodkhang

+0

merci, y a-t-il un moyen meilleur/plus facile de garder le RSS hors de la matrice? – Burjua

0

L'application devra stocker des informations sur les éléments ont été lus. Peut-être stocker l'élément <guid> de l'élément.

+0

Ok, merci pour une réponse rapide, j'ai réfléchi à ce sujet, j'ai une autre question alors, supposons que le flux a été actualisé et Je le télécharge et l'analyse à nouveau, en créant un nouveau tableau en mémoire. Il y a quelques vieux articles et quelques nouveaux articles, comment est-ce que je peux sauver l'état des vieux articles et l'appliquer au nouveau tableau? Ai-je besoin d'une sorte de boucle foreach imbriquée ou cela peut-il être fait plus simple? désolé si j'écris pas très clair)) Merci – Burjua

Questions connexes