27.07.2013 Views

Produktdokumentasjon - WWW dot HENRIKH dot NET

Produktdokumentasjon - WWW dot HENRIKH dot NET

Produktdokumentasjon - WWW dot HENRIKH dot NET

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

4.2.7 NVDB-objekter<br />

NVDB-objektene er objekter som brukes til å mappe data til eller fra JSON med RestKit. Sok-klassen<br />

definerer objektet som sendes med spørringer til NVDB APIet. MapQuestRoute er objektet svar fra<br />

MapQuest mappes til. De andre objektene er stort sett vegobjekter som data fra NVDB mappes til.<br />

Vegobjektene er subklasser av enten LinjeObjekt, PunktObjekt eller SkiltObjekt. Disse klassene er<br />

igjen subklasser av Vegobjekt hvor de viktigste egenskapene defineres. Vegobjekt inneholder blant<br />

annet to arrayer med Egenskap- og Veglenke-objekter. Grunnen til at vegobjektene arver fra enten<br />

LinjeObjekt, PunktObjekt eller SkiltObjekt er at disse typene behandles ulikt i VegObjektKontroller-<br />

klassen. Man kan dermed teste hvilken av disse typene objektet er en subklasse av, og dermed<br />

slippe å teste på alle mulige NVDB-objekttyper.<br />

@protocol VegobjektProtokoll <br />

@required<br />

+ (RKObjectMapping *)mapping;<br />

+ (NSArray *)filtere;<br />

+ (NSNumber *)idNr;<br />

+ (NSString *)key;<br />

+ (BOOL)objektSkalVises;<br />

@end<br />

@interface Vegobjekt : NSObject<br />

@property (nonatomic, strong) NSArray * egenskaper;<br />

@property (nonatomic, strong) NSArray * veglenker;<br />

@property (nonatomic, strong) NSString * lokasjon;<br />

+ (RKObjectMapping *)standardMappingMedKontainerKlasse:(Class)kontainerklasse;<br />

@end<br />

@interface LinjeObjekt : Vegobjekt<br />

@property (nonatomic, strong) NSNumber * strekningsLengde;<br />

@end<br />

@interface PunktObjekt : Vegobjekt<br />

@end<br />

Kodesnutt 26: I Vegobjekt.h defineres VeobjektProtokoll, Vegobjekt, LinjeObjekt og PunktObjekt. SkiltObjekt defineres i<br />

en annen fil (SkiltObjekt.h).<br />

VegobjektProtokoll implementeres av de fleste vegobjektene. Denne protokollen sørger for at<br />

klassene implementerer metoder som returnerer info om objektet til RestKit. Man kan dermed<br />

behandle alle vegobjekter likt uten å vite hva slags objekt det er snakk om.<br />

@implementation Fartsgrense<br />

@synthesize strekningsLengde, egenskaper, veglenker, lokasjon;<br />

- (NSString *)hentFartFraEgenskaper<br />

{<br />

for (Egenskap * e in egenskaper)<br />

{<br />

if([e.navn isEqualToString:FARTSGRENSE_FART_KEY])<br />

{<br />

return e.verdi;<br />

Kjørehjelperen – <strong>Produktdokumentasjon</strong> Side 37

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!