Nastal čas na kakao - Aplikace RSS2: datový model - MujMAC.cz - Apple, Mac OS X, Apple iPod

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:

Soutěž

Sponzorem soutěže je:

IDIF

 

Odkud pochází fotografka Anne Erhard?

V dnešní soutěži hrajeme o:

Seriály

Více seriálů



Začínáme s

Nastal čas na kakao - Aplikace RSS2: datový model

5. října 2004, 00.00 | V minulých dvou pokračováních jsme se seznámili s vývojovým prostředím XCode dostatečně k tomu, abychom se mohli pustit do práce na naší aplikaci. Projekt už máme připravený od předminule; není-li tomu tak, vytvoříme nový projekt typu "Application / Cocoa Application".

V minulých dvou pokračováních jsme se seznámili s vývojovým prostředím XCode dostatečně k tomu, abychom se mohli pustit do práce na naší aplikaci. Projekt už máme připravený od předminule; není-li tomu tak, vytvoříme nový projekt typu "Application / Cocoa Application".

První věc, již uděláme, je nastavení správného identifikátoru aplikace: to jsme se naučili minule. Stačí najít si v hlavním okně projektu target (je jediný uvnitř skupiny Targets), a poklepat na něj; v inspektoru "Properties", který se automaticky otevře, nastavíme "Identifier": použijeme jméno naší domény "odzadu" a jméno aplikace (tedy něco jako "cz.ocs.RSS2", nebo "cz.MujMac.TestRSS"). Chcete-li, můžete také upravit versi a nastavit vhodnou ikonu (třeba prozatím "ukradenou" z jiné aplikace ).

Pak se pustíme do vlastního programování: nejprve si připravíme datový model, pak k němu sestavíme grafické uživatelské rozhraní a oba spojíme dohromady. Toto pořadí není nikterak povinné; nezřídka naopak při programování v Cocoa začínáme právě grafickým uživatelským rozhraním... záleží vlastně jen na tom, co nám nejlépe pro ten který projekt vyhovuje.

Struktura dat

Základní struktura dat je poměrně jednoduchá: řekli jsme si, že naše aplikace bude s to spravovat více seznamů novinek z různých zdrojů RSS; je tedy více než přirozené založit datový model na naší vlastní třídě RSS, jež bude mít více instancí – každá instance bude representovat jeden zdroj.

Každá instance bude mít dva základní atributy: title – titulek, representující název daného zdroje RSS, a news, pole novinek. Pro novinky (objekty v poli news) bychom mohli připravit další vlastní třídu; zbytečně bychom se však programovali s něčím, co dostaneme v Cocoa takřka zadarmo: jedna novinka přece není nic jiného, než několik textů (titulek, obsah, URL) – a na takové věci velmi dobře slouží standardní knihovní třída NSDictionary.

Kromě toho je jistě šikovné si v rámci instancí třídy RSS udržovat informaci o tom, kdy byl seznam novinek ze zdroje RSS načten, jaké bylo URL tohoto zdroje, a zda přitom nedošlo k nějaké chybě. Instance třídy RSS tedy budou obsahovat následující proměnné:

  • NSCalendarDate *created: datum, kdy byla instance vytvořena;
  • NSString *URLString: výchozí URL, na němž je zdroj RSS;
  • NSDictionary *rss: načtené novinky ze zdroje RSS, uložené jako hierarchická struktura standardních knihovních kontejnerů;
  • NSString *error: případná chyba při načítání nebo zpracování.

Kromě toho implementujeme tři accesory: NSString *title, který z informací, obsažených v instanci, zjistí titulek streamu RSS, a NSArray *news, který z těchto informací na požádání vygeneruje pole novinek. Navíc přidáme NSString *timedTitle, který vygeneruje kompletní titulek obsahující i čas, kdy byl objekt vytvořen – to proto, abychom případně mohli snadno rozlišit starší a novější data z téhož zdroje RSS.

Zdrojové soubory

XCode krom jiného dokáže i automaticky připravit kostry zdrojových souborů. Prostě použijeme příkaz "New File" – buď z nabídky "File", nebo z kontextové nabídky libovolné skupiny v podnabídce "Add" – zvolíme požadovaný typ souboru (v našem případě to samozřejmě bude "Cocoa / Objective C class"), a určíme jeho další atributy:

Jak ukazuje obrázek, kromě jména ("RSS.m") si můžeme vybrat i automatické vygenerování odpovídajícího interface, určit, kde soubor má ležet, a specifikovat bude-li součástí targetu.

XCode automaticky připraví prázdný interface i implementaci. Interface doplníme podle minulého odstavce; přidáme navíc pomocnou proměnnou md, již budeme potřebovat při zpracování výstupu zdroje RSS ve formátu XML. Výsledný soubor bude vypadat zhruba nějak takto:

//
//  RSS.h
//  RSS2
//
//  Created by ocs on Sun Aug 29 2004.
//  Copyright (c) 2004 OCSoftware. All rights reserved.
//

#import <Foundation/Foundation.h>
@interface RSS : NSObject {    NSCalendarDate *created;
    NSString *URLString;
    NSDictionary *rss;
    NSString *error;
    // XML parser
    NSMutableDictionary *md;
}
// accessors (in our case, read-only)
-(NSString*)title;
-(NSString*)timedTitle;
-(NSArray*)news;
@end

Odpovídající implementaci si ukážeme příště.

Obsah seriálu (více o seriálu):

Tématické zařazení:

 » Rubriky  » Informace  

 » Rubriky  » Agregator  

 » Rubriky  » Začínáme s  

 

 

 

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: