Eingaben speichern [AnfängerFrage]

  • Eingaben speichern [AnfängerFrage]

    Hallo,

    in meinem App kann man als Bsp. 5 Variablen selber bestimmen a1,a2,a3,a4,a5.
    Diese Variablen sollen aber beim nächsten App start gleich wieder geladen werden
    damit die Einstellungen des Users nicht neu eingegeben werden müssen.

    Ich habe mir WriteToFile angeschaut. Gibt es eine Möglichkeit Daten im App direkt zu speichern ohne externe Dateien anlegen zu müssen? Wonach darf ich suchen, oder mich informieren. Brauche Tips evtl. Code bsp. ;)

    Vielen Dank für eure Hilfe. (Buch ist bestellt)
  • RE: Eingaben speichern [AnfängerFrage]

    Programmeinstellungen gehören ins Preferences Verzeichnis. Es gibt dafür extra eine Klasse namens NSUserDefaults, mit der man seine Einstellungen üblicherweise speichert. Daten direkt im App zu speichern ist keine gut Idee, denn Du kannst nicht davon ausgehen, dass ein Anwender dafür Schreibrechte hat.

    Michael
  • RE: Eingaben speichern [AnfängerFrage]

    Schau doch mal nach den NSUserDefaults.
    Die kann man sogar per Bindings setzen und lesen.
    Und benenne deine Variablen bitte vernünftig.
    a1, a2, a3, a4 und a5 sind ja wohl eine reine Katastrophe.
    «Applejack» "Don't you use your fancy mathematics to muddle the issue!"

    Iä-86! Iä-64! Awavauatsh fthagn!

    kmr schrieb:

    Ach, Du bist auch so ein leichtgläubiger Zeitgenosse, der alles glaubt, was irgendwelche Typen vor sich hin brabbeln. :-P
  • So gibst Du Standardwerte in Deiner Applikation vor:

    Quellcode

    1. // Zeiger auf die UserDefaults:
    2. NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
    3. // Eigene Defaults anlegen:
    4. NSMutableDictionary *appDefaults = [NSMutableDictionary dictionaryWithObjectsAndKeys: /*hier Objekte und Keys*/,nil];
    5. // Standardwerte registrieren:
    6. [userDefaults registerDefaults:appDefaults];

    Willst Du dem Benutzer ermöglichen, diese Werte zu ändern, brauchst Du nur eine Oberfläche basteln und die GUI-Objekte mit dem "Shared User Defaults Controller" zu binden.

    So greifst Du in Deinem Programm auf Default-Werte zu:

    Quellcode

    1. NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
    2. id meineVorsteinstellung = [userDefaults objectForKey:@"Voreinstellungskey"];


    Um's Speichern von durch den Benutzer geänderten Standardwerten brauchst Du Dich nicht zu kümmern. Das geht automatisch. Die Preferences-Datei wird automatisch unter Benutzername/Library/Preferences/com.DeineFirma.Deinprogramm.plist abgelegt und von dort beim Programmstart auch gelesen.

    No.