mots-clés : developpement iphone, tutoriel, lecteur rss
Le modèle de projet qu’Apple fournit a beaucoup de choses déjà mises en place pour que l’on puisse démarrer, trouvez “MainWindow.xib”, et double-cliquez dessus. C’est la fenêtre basique de l’UI de vos applications. Soyez prudent avec ce que vous faites ici. Vous n’avez besoin de faire qu’une chose: vous devriez voir une fenêtre “Navigation Controller” avec une interface basique inclue avec.
Double-cliquez sur la barre de navigation (qui n’a aucun titre à l’intérieur) et écrivez “The Apple Blog”. Appuyez sur Entrée. Sauvegardez et quittez l’Interface Builder.
Cliquez une fois sur “RootViewController.h” dans la liste, et regardez le code sur la droit. Il devrait ressembler à celui-ci :
@interface RootViewController : UITableViewController
{
IBOutlet UITableView * newsTable;
UIActivityIndicatorView * activityIndicator;
CGSize cellSize;
NSXMLParser * rssParser;
NSMutableArray * stories; // a temporary item; added to the “stories” array one at a time, and cleared for the next one
NSMutableDictionary * item;
// it parses through the document, from top to bottom…
// we collect and cache each sub-element value, and then save each item to our array.
// we use these to track each current item, until it’s ready to be added to the “stories” array
NSString * currentElement;
NSMutableString * currentTitle, * currentDate, * currentSummary, * currentLink;
} @end
C’est le fichier de déclaration, où nous indiquons au compilateur à quoi s’attendre quand il est exécuté à travers le contrôleur logique. Maintenant va se dérouler le vrai travail… Ouvrez “RootViewController.m
“.
Vous verrez qu’il y a plus que du code basique afin d’afficher la table view – ce contrôleur est le “delegate” du tableau – le tableau regarde ici pour savoir ce qu’il est supposé d’être vu/affiché/fait dans des situations variées, et envoie des appels aux méthodes quand l’utilisateur des action variées.
Changez la valeur de
(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
à
return [stories count];
Dans nos déclarations, nous avons dit que nous auriez un pointeur (NSMutableArray – une collection d’objets modifiables), que l’on appelle “stories”. Les [crochets] autours signifient que c’est un message – nous demandons au pointeur stories quel est son count (compteur) actuel – c’est comme ça que l’on obtient le nombre d’articles qu’il contient. Notre lecteur RSS va récupérer autant d’articles que possible (un pour chaque histoire dans le feed RSS), et les placer dans ce pointeur, donc cette méthode dira à la table C’est le nombre de lignes dont nous avons besoin : une pour chaque article dans le pointeur, ou pour chaque article dans le feed. Auparavant, il était mis à 0, donc vous lui donnez plus d’information sur notre pointeur.
Ensuite, modifiez la méthode en-dessous de celle que vous venez de changer comme ce qui suit :
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *MyIdentifier = @”MyIdentifier”;
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:MyIdentifier] autorelease];
} // Set up the cell int storyIndex = [indexPath indexAtPosition: [indexPath length] – 1];
[cell setText:[[stories objectAtIndex: storyIndex] objectForKey: @”title”]];
return cell;
}
Comme vous pouvez le voir, nous avons utilisé la méthode “setText:” pour dire à la cellule quel sera son contenu. Chaque ligne dans la table est basiquement une cellule, et ses propriétés sont établies dans cette méthode.
Il y a 4 méthodes colorées en vert a à peu près 3/4 en bas – vous pouvez les supprimer si vous le souhaitez, puisque nous ne les utiliserons pas. Elles ont un rapport avec l’ajout/suppression d’objets.