Video: 20 полезных автотоваров с Aliexpress, которые упростят жизнь любому автовладельцу №32 2024
Bevor Sie mit dem Interface Builder die Elemente für die Modal-Ansicht Ihrer iPad-App erstellen, sollten Sie zuerst Setzen Sie Outlets in den Code Ihrer App, der Ihre Methoden mit den Schnittstellenobjekten des Interface Builder verbindet. Sie müssen drei Dinge in Ihrem Code ausführen, damit der Compiler Zugriffsmethoden für Sie erstellt:
-
Deklarieren Sie eine Instanzvariable in der Schnittstellendatei.
-
Fügen Sie eine @ property-Deklaration dieser Instanzvariablen in derselben Schnittstellendatei hinzu (normalerweise mit dem nichtatomaren Attribut).
Die Deklaration gibt den Namen und den Typ der Eigenschaft sowie einige Attribute an, die dem Compiler Informationen darüber geben, wie genau die Accessor-Methoden implementiert werden sollen.
Zum Beispiel die Deklaration @property (nonatomic, assign) NSString * wordsOfWisdom; Deklariert eine Eigenschaft namens wordsOfWisdom, die ein Zeiger auf ein NSString-Objekt ist. Bei den beiden Attributen - nichtatomar und zuweisungsfrei - wird der Compiler aufgefordert, einen Accessor zu erstellen, der den Wert direkt zurückgibt. Dies ist eine andere Art zu sagen, dass die Accessoren während des Betriebs unterbrochen werden können. Der zweite Wert, assign, weist den Compiler an, eine Accessor-Methode zu erstellen, die eine Zuweisungsnachricht an jedes Objekt sendet, das dieser Eigenschaft zugewiesen ist.
-
Verwenden Sie @synthesize in der Implementierungsdatei, damit Objective-C die Accessoren für Sie generiert.
Die @property-Deklaration deklariert nur, dass es Accessoren geben sollte. Es ist die Anweisung @synthesize, die den Compiler anweist, sie für Sie zu erstellen.
Im folgenden Beispielcode müssen Sie zwei Ausgänge erstellen: einen, der auf ein Texteingabefeld zeigt, und einen, der auf einen Geschwindigkeitsregler zeigt. Um dieses Geschäft zu starten, müssen Sie jede Verkaufsstelle deklarieren, was Sie mit Hilfe des IBOutlet-Schlüsselwortes tun.
#import @protocol EinstellungenViewControllerDelegate; @ Schnittstelle SettingsViewController: UIViewController {delegieren; NSString * wordsOfWisdom; Schweber sliderValue; IBOutlet UITextField * theTextField; IBOutlet UISlider * Schieberegler;} - (IBAction) fertig; - (IBAction) speedChanged: (id) Absender; @property (nichtatomar, zugewiesen) id delegate; @property (nichtatomar, Zuweisung) NSString * wordsOfWisdom; @property (nonatomic, assign) UISlider * Schieberegler; @end @ protocol SettingsViewControllerDelegate - (void) einstellungenViewControllerDidFinish: (SettingsViewController *) controller; - (void) changeSpeed: (doppelt) newSpeed; @end
Zwei Aktionsmethoden (done und speedChanged) für Interface Builder-Elemente werden (zusammen mit IBAction) zusammen mit den IBOutlet-Anweisungen deklariert, die die Ausgänge deklarieren, die automatisch mit einem Zeiger auf das UITextField (theTextField) initialisiert werden. UISlider (Schieberegler) beim Start der Anwendung.Aber während dies automatisch geschieht, geschieht dies nicht automatisch automatisch. Du musst ihm ein bisschen helfen.
Die Methoden, die den Zugriff auf die Instanzvariablen eines Objekts ermöglichen, werden als -Accessor-Methoden bezeichnet. Sie erhalten (mit einer Getter-Methode) und setzen (mit einer Setter-Methode) die Werte für eine Instanzvariable… Obwohl Sie diese Methoden selbst programmieren können, kann dies ziemlich mühsam sein. Hier kommen Eigenschaften ins Spiel. Das Feature Objective-C Declared Properties bietet eine einfache Möglichkeit, die Accessor-Methoden eines Objekts zu deklarieren und zu implementieren. Der Compiler kann Accessor-Methoden gemäß der Anweisung in der Eigenschaftsdeklaration synthetisieren.