Video: Python Web Apps with Flask by Ezra Zigmond 2024
Før du bruger Interface Builder til at oprette elementerne til Modal visning af din iPad app, skal du først sæt afsæt i din apps kode, der vil forbinde dine metoder til Interface Builder-grænsefladeobjekter. Du skal gøre tre ting i din kode for at få kompilatoren til at skabe accessorer til dig:
-
Erklære en instansvariabel i grænsefladefilen.
-
Tilføj en @property-erklæring for denne instansvariabel i samme grænsefladefil (normalt med den ikke-atomiske attribut).
Erklæringen angiver ejendommens navn og type samt nogle attributter, der giver kompilatoren oplysninger om, hvor præcis du vil have adgangsmetoderne til at blive implementeret.
For eksempel erklæringen @property (nonatomic, assign) NSString * wordsOfWisdom; erklærer en egenskab med navnet wordsOfWisdom, som er en pointer til et NSString-objekt. Hvad angår de to attributter - nonatomic og assign - nonatomic, fortæller kompilatoren at skabe en accessor for at returnere værdien direkte, hvilket er en anden måde at sige, at accessors kan afbrydes under brug. Den anden værdi, tildele, fortæller kompilatoren at oprette en accessor-metode, der sender en tildelingsbesked til ethvert objekt, der er tildelt denne ejendom.
-
Brug @synthesize i implementeringsfilen, så Objective-C genererer accessors for dig.
Erklæring om @ ejendom erklærer kun, at der skal være accessorer. Det er @synthesize erklæringen, der fortæller kompilatoren at skabe dem for dig.
I følgende eksempelkode skal du oprette to afsætningsmuligheder: en til at pege på et tekstindtastningsfelt og et til at pege på en hastighedsskyder. For at få denne udløbsvirksomhed startet, skal du deklarere hvert afsætningsmulighed, som du gør ved hjælp af IBOutlet-søgeordet.
#import @protocol SettingsViewControllerDelegate; @interface SettingsViewController: UIViewController {delegate; NSString * wordsOfWisdom; float sliderValue; IBOutlet UITextField * theTextField; IBOutlet UISlider * skyderen;} - (IBAction) udført; - (IBAction) speedChanged: (id) afsender; @property (nonatomic, assign) id-delegeret; @property (nonatomic, assign) NSString * wordsOfWisdom; @property (nonatomic, assign) UISlider * skyderen; @end @protocol SettingsViewControllerDelegate - (void) settingsViewControllerDidFinish: (SettingsViewController *) controller; - (void) changeSpeed: (double) newSpeed; @end
To actionmetoder (done and speedChanged) for Interface Builder-elementer erklæres (med IBAction) sammen med IBOutlet-udsagnene, der erklærer de afsætningsmuligheder, der automatisk initialiseres med en peger til UITextField (theTextField) og UISlider (skyderen), når programmet startes.Men mens dette sker automatisk, sker det ikke automatisk automatisk. Du skal hjælpe det lidt.
Metoderne, der giver adgang til instansvariablerne, kaldes accessor metoder,, og de får effektivt (ved hjælp af en getter-metode) og sætter (ved hjælp af en setter-metode) værdierne for en instansvariabel. Selvom du selv kan kode disse metoder, kan det være ret kedeligt. Her kommer ejendomme ind. Funktionen Objective-C Declared Properties giver en enkel måde at erklære og implementere objektets tilgangsmetoder på. Kompilatoren kan syntetisere accessor metoder efter den måde du fortalte det i ejendomserklæringen.