Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. iOS SDK
Code

iOS SDK: arbeiten mit NSUserDefaults

by
Difficulty:BeginnerLength:MediumLanguages:

German (Deutsch) translation by Redy Sediawan (you can also view the original English article)

In diesem Tutorial werde ich zeigen, wie Sie die NSUserDefaults-Klasse verwenden, um Anwendungseinstellungen zu speichern und zu aktualisieren. Dabei bauen wir eine Demo-app namens "Kontakt", das Speichern einer Benutzerbilder und Kontaktinformationen.

Was ist die NSUserDefaults-Klasse?

Mit der NSUserDefaults-Klasse können Sie Einstellungen und Eigenschaften in Bezug auf die Anwendung oder der Benutzer Daten speichern. Zum Beispiel könnten Sie ein Profilbild einstellen durch den Benutzer oder eine Standard-Farbschema für die Anwendung speichern. Die Objekte werden in iOS "Standardeinstellungen System sogenannten" gespeichert. Das iOS Standardwerte System ist in allen Bereichen der gesamte Code in Ihrer Anwendung, und die Standardwerte-System gespeicherten Daten über Anwendungssitzungen anhalten. Dies bedeutet, dass selbst wenn der Benutzer Ihre Anwendung schließt oder ihr Telefon neu gestartet, die gespeicherten Daten noch verfügbar das nächste Mal werden, das Sie die app öffnen!

Mit NSUserDefaults sparen Sie Objekte aus folgenden Klasse:

  • NSData
  • NSString
  • NSNumber
  • NSDate
  • NSArray
  • NSDictionary

Wenn Sie jede andere Art von Objekt, z. B. ein UIImage speichern möchten, müssen Sie in der Regel archivieren oder wickeln Sie es in einer Instanz von NSData, NSNumber oder NSString.

Nun da Sie wissen, ein wenig über das, was mit NSUserDefaults getan werden kann, lasst uns springen zu lernen, wie man das Standard-System mit einem einfachen Beispiel-app zu verwenden, die Kontaktinformationen gespeichert werden.

Schritt 1: Projekt erstellen

Öffnen Sie Xcode und wählen Sie "Ein neues Xcode-Projekt erstellen". Wählen Sie eine View-basierte Anwendung aus und klicken Sie auf Weiter. Geben Sie einen Namen für Ihr Projekt ein (ich habe meinen "Kontakt" genannt). Geben Sie Ihre Firmenkennung ein und stellen Sie sicher, dass Sie iPhone für die Gerätefamilie auswählen, da wir eine iPhone-App erstellen werden. Wenn Sie fertig sind, klicken Sie auf weiter. Wählen Sie einen Speicherort für Ihr Projekt und dann klicken Sie auf erstellen.

NSUserDefaults Figure 1

Schritt 2: Gestaltung der Schnittstelle

In der "Kontakt" Ordner im "Projekt-Navigator" klicken Sie auf ContactViewController.xib.

Ziehen Sie drei UITextFields aus der Bibliothek in der Ansicht und ordnen Sie diese wie unten. Machen Sie dasselbe mit einem UIImageView und zwei Runden Rect-Tasten.

Klicken Sie auf das erste Textfeld und geben Sie die Platzhalter-Text-Feld "Vorname". Klicken Sie jetzt auf das zweite Textfeld und geben Sie "Last Name" im Feld Platzhalter-Text. Endlich, die dritte und letzte TextField und Typ "Alter" klicken Sie im Feld Platzhalter-Text. Wählen Sie für Tastatur Nummernblock, da Sie nur Zahlen brauchen, um Ihr Alter zu geben.

Ändern Sie den Text der ersten Schaltfläche in "Speichern" und den Text der zweiten Schaltfläche in "Bild auswählen".

NSUserDefaults Figure 2

Jetzt machen wir die Verbindungen. Xcode 4 bietet eine neue einfache und schnelle Möglichkeit, dies zu tun. Wählen Sie die mittlere Schaltfläche des Editors aus, um den "Assistenten-Editor" anzuzeigen.

NSUserDefaults Figure 3

Klicken Sie auf den ersten Namen TextField und ziehen Sie die STRG-Taste in die Benutzeroberfläche. Ein Pop-up wird, geben Sie "FirstNameTextField" ein und klicken Sie auf "verbinden".

NSUserDefaults Figure 3

Machen Sie dasselbe mit dem Nachnamen und Alter Text-Feld und die UIImageView, aber nennen sie LastNameTextField, AgeTextField und ContactImageView. Für die Schaltflächen müssen wir die Verbindung zum Handeln statt Outlet zu ändern. CTRL-Drag aus den Save button an der Benutzeroberfläche, aber dieses Mal unter die geschweiften Klammern. Ändern Sie die Verbindung zum Handeln und geben Sie "Speichern" ein. Machen Sie dasselbe mit den wählen Sie Bild-Button, aber diese Zeit geben Sie "ChooseImage" für Name. Jetzt sollte der Code von der ContactViewController.h wie folgt lauten:

Jetzt sind wir fertig mit der Schnittstelle. Klicken Sie auf erstellen und ausführen, um festzustellen, ob es gut läuft. Geben Sie Text und schließen Sie die app. Wenn Sie die app wieder öffnen, sehen Sie wahrscheinlich, dass die von den Ihnen eingegebenen Text noch vorhanden ist. Wenn ja, wird dies durch die integrierten Multitasking-fähig von iOS verursacht. Wenn Sie die app aus der Multitasking-Bar löschen und die app erneut öffnen, sehen Sie, dass die von den Ihnen eingegebene Text ist Weg. In diesem Tutorial werden wir NSUserDefaults verwenden, speichern die Informationen, die eingegeben werden, auch wenn Sie "wirklich" die app schließen. Dadurch werden die Daten durch mehrere Sitzungen beibehalten.

Schritt 3: Auswahl eines Bildes

Wechseln Sie zurück zu standard Editor-Modus, so dass Sie mehr Platz zum Arbeiten haben. Öffnen Sie ContactViewController.h und fügen Sie die UIImagePickerControllerDelegate und die UINavigationControllerDelegate.

Wenn Sie damit fertig sind, öffnen Sie die ContactViewController.m und scrollen Sie die ChooseImage-Aktion, und ändern Sie den Code wie folgt:

Zuerst erstellen wir eine UIImagePickerController, dann setzen wir den Delegaten zu sich selbst. Als nächstes wir ermöglichen Benutzer bearbeitet, dann geben Sie die Quelle der Foto-Bibliothek, und schließlich zeigen wir es mit einer Animation für dem Benutzer.

Wählen Sie unter Image-Aktion, Anzeige der folgenden Bildauswahl delegieren Methoden:

Bei der ersten Methode wir setzen das ContactImageView Bild auf das ausgewählte Bild und dann schließen die UIImagePickerController. Bei der zweiten Methode wird der UIImagePickerController nur verworfen.

Schritt 4: Speichern der Daten

Sie können Text mit der Funktion speichern: setObject: (id) forKey: (NSString *). Der Schlüssel muss ein bestimmter Schlüssel für das Objekt sein, das Sie speichern, da Sie auch diesen Schlüssel benötigen, um die gespeicherten Daten abzurufen. Sie können Ganzzahlen mit der Funktion: setInteger: (NSInteger) forKey: (NSString *) speichern. Um das Bild zu speichern, müssen Sie zunächst eine Instanz von NSData erstellen.
Gehen Sie zur Speicheraktion und ändern Sie den Code wie folgt:

Zuerst verstecken wir die Tastatur. Dann erstellen wir Strings aus dem Text, den Sie in das Feld für den Vor- und Nachnamen eingegeben haben. Wir erstellen auch eine Ganzzahl des von Ihnen eingegebenen Alters. Als wir das Bild von ContactImageView als ein NSData-Objekt speichern, da wir eine UIImage direkt mit NSUserDefaults speichern können. Dann speichern wir die Daten, wir rufen die NSUserDefaults-Funktion, um die Daten darin zu speichern. Endlich haben wir die NSUserDefaults Datenbank synchronisieren.

Schritt 5: Abrufen der gespeicherten Daten

Wir wollen endlich die gespeicherten Daten zu erhalten. Wir tun dies in der Spiele-Methode, weil diese Methode aufgerufen wird, wenn die Anwendung öffnet. Scrollen Sie zu "Spiele"-Methode, kommentieren sie und ändern Sie den Code wie folgt:

Zuerst rufen wir die NSUserDefaults Funktion wieder, so können wir die gespeicherten Daten. Wir haben den ersten und letzten Namen in einen NSString. Obwohl das Alter eine Ganzzahl ist, schaffen wir eine Zeichenfolge zu speichern, weil wir direkt den Text von einem Textfeld in einen Integer Wert festlegen kann nicht. Wir setzen das Bild in einem NSData-Objekt und anschließend erstellen wir ein UIImage aus dem NSData-Objekt. Abschließend aktualisieren wir das UI-Element mit den gespeicherten Daten.

Jetzt, da die app fertig ist, erstellen Sie und führen Sie es erneut. Geben Sie Ihre Daten ein und wählen Sie ein Bild. Schließen Sie die app von der Multitasking-Bar und öffnen Sie die app wieder. Die Daten sollte es diesmal, und wenn ja, unsere Demo-Anwendung funktioniert!

Danke fürs Lesen dieses Tutorial über NSUserDefaults! Wenn Sie Fragen oder Kommentare zu diesem Tutorial haben, lassen Sie sie in den Kommentaren unten!

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.