Hjem Sosiale medier Slik bruker du Java Script Object Notation i IOS Apps - dummies

Slik bruker du Java Script Object Notation i IOS Apps - dummies

Video: JavaScript for Web Apps, by Tomas Reimers and Mike Rizzo 2024

Video: JavaScript for Web Apps, by Tomas Reimers and Mike Rizzo 2024
Anonim

JavaScript Object Notation (JSON) er blitt de facto når det gjelder å representere data i iOS-apper. Du kan bruke JSON til å overføre data over Internett og som format for å lagre og hente data fra lang levetid. JSON er både menneskelig lesbar og enkel for maskiner å forstå. Data i JSON kan være i en av to strukturer:

  • Et objekt bestående av et ubestilt sett med navnverdierpar. Hver navn-verdi tilsvarer et attributt for objektet. Hvert navn-verdi-par kan nestes, hvis attributten som representeres er hierarkisk i naturen.

  • Et ordnet utvalg av verdier. Hver verdi i arrayet kan være en skalar (en boolsk, streng- eller tallverdi), en gjenstand eller en matrise.

I Tic-Tac-Toe representerer JSON tilstanden til et spill. Denne tilstanden består av følgende:

  • Den nåværende spilleren (spiller 1 eller spiller 2) er representert som et heltall (0 for spiller 1 og 1 for spiller 2).

  • Spillets tilstand - enten det er aktivt eller fullført; hvis det er fullført, om det er vunnet eller tegnet og hvis vant, av hvem.

    Statene er også representert som heltall, med Inaktivt vær -1, Aktiv er 0, Vann 1, og Tegn som 2.

  • Statens rutenett - det vil si hvilke symboler er til stede i hver av rutene på rutenettet. Merk at symbolene er representert som tallverdiene 0, 1 og 2, som står for henholdsvis Blank, X og O.

  • Nåværende symbol (den som skal spilles på neste trekk). Her (og bare for å variere eksemplet) representerer vi symbolet som strengen "X" eller strengen "O" eller en blank ("").

  • Spilltellingen (antall bevegelser gjort til det nåværende punktet i spillet) er representert som et heltall.

I denne koden viser vi JSON-objektet som svarer til en og aktiv Tic-Tac-Toe-spill:

{"TTTGameKeyCurrentPlayer": 0, "TTTGameKeyState": 0, "TTTGameKeyGridState": "2, 1, 2, 2, 1, 0, 1, 2, 1 "," TTTGameKeyCurrentSymbol ":" X "," TTTGameKeyPlaycount ": 8}

JSON kan enkelt kartlegge til tilgjengelige datastrukturer (for eksempel array, strukturer og objekter) i stort sett hvert programmeringsspråk. Objektformen til JSON kan enkelt kartlegge programmeringssprågem objekter eller strukturer, mens arrayformen til JSON kan kartlegge til en matrise, vektor, liste eller sekvens, i utgangspunktet uansett datastruktur kan holde en bestilt samling objekter.

I Tic-Tac-Toe blir JSON-objektet som svarer til tilstanden til spillet, kartlagt til et NSDictionary, fordi en NSDictionary-objekt også består av nestede navnverdier.Som et resultat, når du må lagre tilstanden i spillet, får du sin tilstand som et NSDictionary-objekt og deretter konverterer det til en JSON-streng.

Når du henter spillets tilstand, gjør du det motsatte - du leser i JSON-data og konverterer det til et NSDictionary-objekt og bruker deretter NSDictionary til å gjenopprette spillet til den lagrede tilstanden.

Følgende eksempel viser denne konverteringen fra et ordboksobjekt til JSON og fra JSON-dataobjektet til en streng (fra metoden saveGame i spillesesjonens visningskontroller - filer TTTGameSessionViewController.m og.h):

- (IBAction) saveGame: (id) avsender {NSDictionary * savedGameDictionary = [activeGame toDictionary]; NSError * feil; NSData * jsonData = [NSJSONSerialization dataWithJSONObject: savedGameDictionary alternativer: NSJSONWritingPrettyPrinted error: & error]; NSString * savedGameString = [[NSString alloker] initWithData: jsonData-koding: NSUTF8StringEncoding]; NSString * savedGamesFilePath = [NSHomeDirectory () stringByAppendingPathComponent: @TTTGAMESESSIONSAVEDFILEPATH]; [savedGameString writeToFile: savedGamesFilePath atomisk: JA-koding: NSUTF8StringEncoding error: NULL];}

Den viktige metoden her er i metoden dataWithJSONObject fra NSJSONSerialization-klassen.

Du kan se omvendt operasjon (det vil si fra en JSON-streng til et NSDictionary) i gjenopprettingsmetoden i samme visningskontroller:

- (IBAction) restoreGame: (id) sender {NSLog (@ "Restoring spill"); … NSError * restoreError = nil; NSMutableDictionary * savedDictionary = [NSJSONSerialization JSONObjectWithData: [savedGameString dataUsingEncoding: NSUTF8StringEncoding] alternativer: NSJSONReadingMutableContainers error: & restoreError]; activeGame = [[TTTGame alloc] initFromDictionary: savedDictionary]; TTTGameGrid * gameGrid = [activeGame getGameGrid]; hvis (! [activeGame isActive]) [boardView disableInput]; [boardView setGrid: gameGrid]; [gameView redraw];}

Her er nøkkelmetoden JSONObjectWithData, som gjør omvendt arbeidet med å skape Objective-C NSDictionary fra JSON data.

Slik bruker du Java Script Object Notation i IOS Apps - dummies

Redaktørens valg

10 Måter å varme opp og slappe av før og under GRE-dummies

10 Måter å varme opp og slappe av før og under GRE-dummies

GRE er like mye fysisk trening som det er mentalt, og det er mer som en maraton enn en sprint. Hvis du kommer ut av blokkene med en sprintens tempo, er du sikker på å raskt eksosere deg selv. Nøklene til å komme til enden og fullføre sterken, oppvarmer seg mentalt og holder seg i orden ...

Argument analyse på GRE - strategier og praksis spørsmål - dummies

Argument analyse på GRE - strategier og praksis spørsmål - dummies

Når du takler et argument Analysespørsmål på GRE, din jobb er å identifisere om forfatteren har gjort en tilstrekkelig jobb med å presentere og støtte sin stilling. Graduate skoler forventer at du ikke bare skal lese med forståelse, men også å undersøke informasjonen og argumentet som presenteres og sortere logikken som er rimelig fra ...

Argument analyse på GRE Verbal Essay Test - praksis spørsmål - dummies

Argument analyse på GRE Verbal Essay Test - praksis spørsmål - dummies

Når du tar GRE Verbal testen, et av essay spørsmålene vil be deg om å analysere et argument. Du må lese argumentet, se på sine underliggende forutsetninger, og deretter forklare hvordan disse forutsetningene påvirker argumentet. Følgende praksis spørsmål ligner på hva du finner på testen. Øvelsesspørsmål Tid: ...

Redaktørens valg

Oversikt over sikkerhetspolitikk for mobilenheter - dummier

Oversikt over sikkerhetspolitikk for mobilenheter - dummier

Sikkerhetspolitikk for mobile enheter som knytter seg til bedriftsnettverket kan deles inn i to kategorier: retningslinjer for godkjente enheter og retningslinjer for andre enheter. Enhetspolicyer. Her er en oversikt over de to kategoriene av enhetsretningslinjer som du må kommunisere med brukere: Politikk for godkjente enheter: Denne policyen gjelder for alle bedriftsutstedte ...

Oversikt over mobilenhetssikkerhet gjennom skybaserte beskyttelser - dummies

Oversikt over mobilenhetssikkerhet gjennom skybaserte beskyttelser - dummies

Ved hjelp av skybasert endpoint-sikkerhet er en metode for å beskytte enterprise mobile enheter fra virus, malware, spam og andre trusler. Den faktiske trusselsbeskyttelsen skjer i skyen eller sentralisert datasenter for sluttpunktsprogramvareleverandøren i denne typen distribusjon. Trafikk til og fra de mobile enhetene blir omdirigert på enheten til ...

Oversikt over mobilenhetssikkerhet gjennom enhetsadministrasjon - dummies

Oversikt over mobilenhetssikkerhet gjennom enhetsadministrasjon - dummies

Nå som du har tenkt på å sikre mobilen enheter på nettverket ditt fra trusler som virus og malware, er det på tide å planlegge for ekstern håndheving av retningslinjer for enhetsadministrasjon eller sikkerhet. Du får ideen. Det handler om enhetssikkerhetsetikett, om å ta de enkle, men ofte ignorerte trinnene for å beskytte vitale data lagret på ...

Redaktørens valg

Hånd- og håndleddskader grunnleggende for legeassistenteksamen - dummies

Hånd- og håndleddskader grunnleggende for legeassistenteksamen - dummies

Legeassistenteksamen PANCE) vil stille spørsmål om forhold som påvirker hånden og håndleddet. De spenner fra godartede cyster til mindre forstuinger til utbruddssvikt, så gjør deg kjent med det grunnleggende. Ganglioncyster En vanlig myk vævsmasse som du kan se på hendene og håndleddene, er en ganglioncyst, også kjent ...

HIV Grunnleggende for legeassistenteksamen - dummies

HIV Grunnleggende for legeassistenteksamen - dummies

For legeassistenteksamen (PANCE), bør du være kjent med noen generelle ting som angår HIV, spesifikke infeksjoner relatert til HIV, og bivirkninger av visse medisiner. HIV står for humant immundefektvirus. Risikofaktorer for å skaffe hiv inkluderer høyrisiko seksuell atferd og narkotikamisbruk, spesielt intravenøs bruk med skitne nåler. Kommer i kontakt med ...

Mageområdet for legeassistenteksamen - dummies

Mageområdet for legeassistenteksamen - dummies

Etter å ha reist gjennom spiserøret, din neste destinasjon i forberedelsene til legeassistenteksamen (PANCE) er det livlige magesektoren. Inneholder cardia, fundus, antrum og pylorus, er dette området bare moden for patologi og fremtidige PANCE-spørsmål. Magen er et sted hvor mye av fordøyelsen finner sted. Hovedcellene ...