Hjem Sosiale medier Slik tilpasser du adferd av IOS Framework Classes: Subclassing og Delegating - dummies

Slik tilpasser du adferd av IOS Framework Classes: Subclassing og Delegating - dummies

Innholdsfortegnelse:

Video: Web Apps of the Future with React by Neel Mehta 2024

Video: Web Apps of the Future with React by Neel Mehta 2024
Anonim

Selv om du skal lage klasser (spesielt modellklasser) for din iOS-app, vil du ofte ønske å tilpasse oppførselen til en bestemt rammeklasse. Du har tre måter å gjøre om det:

  • Subclassing

  • Delegating

  • Deklarerte egenskaper

Subclassing

Objective-C, som andre objektorienterte programmeringsspråk, tillater deg å basere en ny klasse på en klasse som allerede er erklært. Baseklassen kalles en superklasse; Den nye klassen er dens underklasse. Hver underklasse du definerer arver metoder og instansvariabler av superklassen.

Noen rammeklasser forventes å være underklasse. Blant dem er visningskontrollere, som du vil bli subclassing ganske mye. Faktisk er det noen klasser som aldri blir instantiated direkte: Disse kalles abstrakte klasser. Deres underklasser kan bli instantiated direkte: Disse kalles konkrete forekomster.

Nesten alle objektorienterte programmeringsspråk støtter underklasse. Det er imidlertid noen ganger et problem noen ganger. Det kalles multiple arv problemet: det er når du vil at en klasse skal være en underklasse av to klasser. Det er ikke noe problem hvis begge underklassene er i klasshierarkiet. Du kan ha en klasse kalt struktur, en underklasse som kalles boligstruktur, og en underklasse av begge kalt hus.

Men hva gjør du hvis du vil at huset skal være en underklasse både struktur og investering?

Delegasjonsmønsteret

Delegasjon er et mønster som brukes mye i iOS-rammene, så mye at hvis du vil gjøre noe seriøst apputviklingsarbeid, må du få hodet ditt rundt den. Faktisk, når du gjør forstår det, blir livet ditt nå lettere å håndtere.

I stedet for å underklassifisere et objekt, delegerer en gjenstand oppgaven med å implementere et ansvar til et annet objekt. Du bruker en oppføringsrik gjenstand som leveres av rammen som er , og setter koden for programspesifikk oppførsel i et separat (delegat) objekt. Når en forespørsel er gjort om rammeobjektet, blir metoden til delegaten som implementerer den programspesifikke oppførsel, automatisk kalt.

IOS-rammer legger stor vekt på delegasjonsmønsteret.

For eksempel håndterer UIApplication-objektet det meste av det faktiske arbeidet som trengs for å kjøre appen.Men som du så, sender den din søknad delegere programmet: didFinishLaunchingWithOptions: melding for å gi deg muligheten til å lage modellobjekter som er unike for appen din.

Når et rammeobjekt er utformet for å bruke delegater til å gjennomføre bestemte oppføringer, er det en protokoll som angir atferdene det krever (eller gir deg muligheten til å implementere).

Protokoller definerer et grensesnitt som delegatobjektet implementerer. IOS kan protokoller være formelle eller uformelle. Formelle protokoller inkluderer støtte for ting som typekontroll og kjøretidskontroll for å se om et objekt samsvarer med protokollen.

I en formell protokoll trenger du vanligvis ikke å implementere alle metodene; mange er erklært valgfrie, noe som betyr at du må implementere bare de som er relevante for appen din. Før en formell protokoll forsøker å sende en melding til sin delegat, bestemmer vertsobjektet om delegaten implementerer metoden (via en responsToSelector: melding) for å unngå forlegenhet for forgrening til ingensteds hvis metoden ikke er implementert.

En protokoll kan vedtas av hvilken som helst klasse så lenge den implementerer de nødvendige metodene for protokollen. Ved å vedta en eller flere protokoller og bli en delegat, kan en enkelt klasse implementere funksjonalitet fra to andre klasser - det gir en tilnærming til flere arv.

Slik tilpasser du adferd av IOS Framework Classes: Subclassing og Delegating - dummies

Redaktørens valg

Bruk skjermfeltet til å endre QuickBooks 2014 Rapporter - dummies

Bruk skjermfeltet til å endre QuickBooks 2014 Rapporter - dummies

Skjermbildet i QuickBooks Modify Report dialogboksen lar deg kontrollere rapportintervalldatoen, rapportgrunnlaget, kolonnene og en annen formatering. Bokstavene Rapporter datoområde - Datoer, Fra og Til - gjør det samme som Datoer, Fra og Til bokser i Rapportvinduet. Disse boksene lar ...

Bruk skjermfeltet til å modifisere QuickBooks 2013 Rapporter - dummies

Bruk skjermfeltet til å modifisere QuickBooks 2013 Rapporter - dummies

Hvis du klikker Tilpass rapport, QuickBooks viser dialogboksen Endre rapport, som du kan bruke til å tilpasse en rapport. Når du tilpasser en rapport, endrer du rapportens utseende, layout og informasjonen som den oppsummerer. Dialogboksen Endre rapport ser annerledes ut for ulike rapporttyper. Likevel, hvis du ser forbi ...

Bruk fanen Filtre til å modifisere QuickBooks 2014 Rapporter - dummies

Bruk fanen Filtre til å modifisere QuickBooks 2014 Rapporter - dummies

Filtrene kategorien er trolig den mest interessante og en nyttig kategori som er levert av dialogboksen QuickBooks Modify Report. Filtre-fanen lar deg sette opp filtre som du kan bruke til å angi hvilken informasjon som oppsummeres i rapporten. For å bruke Filtrer-fanen velger du først feltet du vil ha ...

Redaktørens valg

Administrere Cloud Computing Resources - dummies

Administrere Cloud Computing Resources - dummies

I teorien bør cloud computing-tjenester ikke være forskjellig fra ressursene i din eget miljø, bortsett fra at de bor eksternt. Ideelt sett har du en komplett visning av cloud computing-ressursene du bruker i dag, eller vil kanskje bruke i fremtiden. I de fleste skymiljøer kan kunden bare få tilgang til ...

Tips for Going Cloud med datanettverkene dine - dummies

Tips for Going Cloud med datanettverkene dine - dummies

Beregning med datanettverket ditt kan være, hva skal du gjøre for å ta nettverket ditt mot skyen? Her er noen anbefalinger: Ikke stole på en dårlig Internett-tilkobling. Først og fremst, før du tar noen av nettverksoperasjonene i skyen, gjør du ...

Nettverkstjenester levert gjennom Cloud Computing - dummies

Nettverkstjenester levert gjennom Cloud Computing - dummies

Tre forskjellige typer nettverkstjenester kan leveres via skyen: applikasjoner , plattformer og tjenester (infrastruktur). I de følgende avsnittene beskrives disse tre typer skyttjenester i større detalj. Programmer i skyen Vanligvis kalt Software as a Service (SaaS), fullt funksjonelle applikasjoner kan leveres via skyen. En av ...

Redaktørens valg

10 Hadoop Ressurser verdt en bokmerke - dummies

10 Hadoop Ressurser verdt en bokmerke - dummies

Følgende er ti fantastiske Hadoop-ressurser som er verdige til å skape en bokmerke i nettleseren din. Disse ressursene hjelper deg med å skape en livslang læringsplan for Hadoop. Sentralnervesystemet: Apache. org Apache Software Foundation (ASF) er det sentrale fellesskapet for open source-programvareprosjekter. Ikke bare et prosjekt kan være et Apache-prosjekt - ...

Data transformasjon i Hadoop - dummies

Data transformasjon i Hadoop - dummies

Ideen om Hadoop-inspirerte ETL motorer har fått mye trekkraft de siste årene. Hadoop er trods alt en fleksibel datalagrings- og behandlingsplattform som kan støtte store mengder data og operasjoner på dataene. Samtidig er det feiltolerant, og det gir mulighet for kapital- og programvarekostnad ...

Datablokker i Hadoop Distributed File System (HDFS) - dummier

Datablokker i Hadoop Distributed File System (HDFS) - dummier

Når du lagrer en fil i HDFS, bryter systemet det ned i et sett med individuelle blokker og lagrer disse blokkene i forskjellige slave noder i Hadoop-klyngen. Dette er en helt vanlig ting å gjøre, da alle filsystemer bryter filer ned i blokker før de lagres til disk. HDFS har ingen ...