Hjem Sosiale medier Hvordan du bruker protokoller til å definere metoder for iOS-programmer - dummies

Hvordan du bruker protokoller til å definere metoder for iOS-programmer - dummies

Video: Learning iOS: Create your own app with Objective-C! by Tianyu Liu 2024

Video: Learning iOS: Create your own app with Objective-C! by Tianyu Liu 2024
Anonim

En protokoll definerer sett med metoder som kan implementeres av enhver klasse. Tenk på protokoller som å definere grensesnitt som klasser må implementere. Protokoller brukes ofte til å spesifisere grensesnittet for delegerte objekter.

Med protokollfunksjonen kan du unngå å tvinge underklasse for å lage polymorfe klasser. Mål-C (i motsetning til C ++) tillater ikke at en klasse har flere superklasser. Protokoller er derfor en viktig funksjon i Mål-C fordi det ikke tillater flere arv.

Når en klasse implementerer metodene i en protokoll, sies klassen i samsvar med protokollen. Definisjonen av en protokoll ligner definisjonen av et grensesnitt for en klasse. En protokoll har imidlertid ikke en forelderklasse eller instansvariabler. Her er et eksempel på en protokolldefinisjon (Printable) fra postfix kalkulatorprogrammet:

@protocol Printable - (void) printMe; // Jeg kan forlate @required, siden det er standard @optional - (NSString *) printMeToString; -d

Ved ankomst (og med stor fanfare) av Objective-C 2.0, kan protokollmetoder enten være påkrevd (standard) eller valgfritt.

Her er erklæringen fra StackOfInteger om at den skal implementere protokollen: @interface StackOfInteger: NSObject … -d
Her er implementeringen av protokollen i StackOfInteger-klassen:

@implementation StackOfInteger; … Andre StackOfInteger metoder … /////////// Metoder for å implementere Printable protokollen //////////// - (void) printMe {int k, stackCount = [element count]; NSLog (@ "Stack-> Last>% dlast); for (k = 0; k% @

Legg merke til at printMeToString-metoden ikke er implementert fordi den er valgfri. 

< ! - 1 ->

Et program kan teste om en gjenstand samsvarer med en protokoll. Følgende kode inneholder eksempler på denne testen (hentet fra hovedprogrammet til prøven):

printf ("Testing conformance to protocolsn "), hvis ([myStack conformsToProtocol: @protocol (Printable)]) {printf (" Bruk protokoll methodsn "); [myStack printMe];} else {NSLog (@" Object samsvarer ikke med protokollen% @ n " @protocol (Utskriftsvennlig));} id someObject = [[PostfixCalculator allokering initWithExpression: @ "44 55 *"]; hvis (! [someObject conformsToProtocol: @protocol (Printable)]) {NSLog (@ "Objektet er ikke i samsvar med protokoll ");}

Fordi myStack-objektet er i samsvar med protokollen, kalles metodene printMe og printMeToString. Siden someObject (som er type-ID for å gjøre eksemplet mer meningsfullt) ikke samsvarer med Utskriftsprotokollen, testen for samsvar mislykkes.

Du kan også teste for eksistensen av en valgfri metode ved hjelp av metoden respondsToSelector.

Du kan få en klasse til å vedta en protokoll bare ved å implementere metodene som er definert av protokollen. Det betyr at du ikke må erklære protokollen i grensesnittet. Selv om klassen implementerer protokollmetodene, vil den

ikke ikke være i samsvar med protokollen og vil mislykkes i den foregående konformitetsprøven.

Hvordan du bruker protokoller til å definere metoder for iOS-programmer - 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 ...