Video: KIL Supporterklubb - Årsfilm 2010 2024
Under utviklingen av iOS-appen din, kan du sende en referanse. Dette skjer når du refererer til en klasse (si A) i en annen klasse (si B) bare å erklære en instansvariabel i første klasse i annen klasse. En måte å gjøre er å inkludere grensesnittfilen for A i grensesnittfilen for B.
Dette kan imidlertid føre til sirkulære avhengigheter dersom A og B har medlemsvariabler av hverandres klasse. Det vil si at en forekomst av A har en medlemsvariabel som er en forekomst av B og omvendt.
For å omgå disse sirkulære avhengighetene og for å forenkle bruken av en klasse i en annen, gir Objective-C det som er kjent som en fremre referanse via et @ klassedirektiv.
@ klassedirektivet oppretter en referanse til en annen klasse. Innenfor grensesnittet til PostfixCalculator (vist neste) ser du et eksempel på en forward-referanse. @ Klassedirektivet informerer kompilatoren om at ordet StackOfInterface er navnet på en klasse. Så når erklæringen av kalkulatorStack er utarbeidet, vet Objective-C-kompilatoren at denne erklæringen er en gyldig deklarasjon, og også hvordan du tilordner minne for det.
Dette virker fordi når kompilatoren møter en variabel deklarasjon, for å tildele minne for en objektverdig variabel, trenger den bare å vite at variabelen er (en peker til) et objekt av en klasse. Kompilatoren trenger ikke å vite detaljer som hvordan klassens metoder er definert.
// ------- @interface section ------- @ class StackOfInteger; // forward declaration @ interface PostfixCalculator: NSObject {@public NSString * uttrykk; @beskyttet StackOfInteger * calculatorStack;} … Metoder … -d
Praksis for prosesser og et sett med designkriterier.