Hvordan overstyre en Accessor Metode i Objective-C

The Objective-C-språk er en streng objektorientert variant av den vanlige C-standarden. Dette språket utviklet seg over mange tiår blitt standard utviklingsplattform for Apple-datamaskiner og mobile enheter. I objektorientert programmering, inneholder hver programmering objekt sin egen data som er lagret i "instansvariabler." Andre objekter, og programmet som helhet, kan "tilgang" disse variablene via "tilgangsmetoder." Men kanskje du ønsker å overstyre disse tilgangsmetoder med en tilpasset prosess som utfører merarbeid.

Bruksanvisning

1 Åpne "gjennomføring" fil for din Object-C-program. Dette er filen som skaper koden for alle metodene i programmet, inkludert tilgangsmetoder.

2 Skriv inn følgende linje med kode, erstatte "(int)" og "variable" for selve datatype og variabelnavnet du påvirke av den tilpassede tilbehør metode:

- (Int) variable {

For eksempel, hvis du har en "flyte" variabel kalt "brøkdel" du ville skrive denne linjen:

- (Float) brøkdel {

3 Skriv inn din egendefinerte tilbehør algoritmen, etterfulgt av en avslutning brace å betegne gjennomføring av tilbehør metoden. Den normale tilbehør metoden inneholder en eneste linje med kode som bare returnerer verdien av variabelen:

tilbake variabel;

Dermed opprinnelige tilbehør metoden ser ut som:

- (Int) variable {

tilbake variabel;

}

Nå anta at du vil ta verdien av en instansvariabel og multiplisere det med 100. For eksempel kan din instansvariabel være en "flyte" tall (som inneholder desimaler) kalt "prosent". Når du samhandler med den variabelen, vil du prosenten behandlet som et heltall. Dermed er 0.67 til å bli 67. Hele tilpasset tilbehør metoden kan se slik ut:

- (Float) oldpercent {

int newpercent = (int) oldpercent * 100;

tilbake newpercent;

}

Hint

  • Overstyre en tilgangsmetode er ikke alltid den klokeste tilnærming til et program. For eksempel, i ovennevnte tilpasset tilbehør metoden, vi er permanent endre den returnerte verdien av et lagret nummer hver gang vi prøver å få tilgang til denne verdien. Det kan være bedre å i stedet opprette en egen metode som multipliserer prosent med 100 og konverterer til et heltall. Da kan vi beholde de opprinnelige dataene og få tilgang til den hvis det er nødvendig, men bruker en annen metode med samme letthet som oppnådd den samme oppgaven.