NSUserDefaults

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Plists werden nicht in den Speicher geladen, Plists sind Objekt im Speicher, nämlich NSString, NSNumber, NSArray, NSDictioanry.

    Persistente Repräsentationen von Plists werden in den Speicher geladen. Und das ist nicht per se falsch.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • jopjip schrieb:

    A pros pros schlechter Stil: Ist es schlechter Stil, wenn ich in den Ressources meiner App eine plist-Datei speicher, diese als NDictionary lade und für registerDefaults: verwende? Ist es nämlich wesentlich einfacher in dem plist-Editor von Xcode defaults hinzuzufügen und zu löschen als das Immer im Code zu machen. Allerdings hat man dann in den Ressources eine Datei mehr. Mit Dateigröße braucht mir aber keiner kommen, die brauchen nur ein paar kB ;)

    Das ist grundsätzlich in Ordnung. Aber auch im Hinblick auf einen anderen Beitrag hier:

    Defaults können lokal in einer Applikation sein, etwa die eines Window-Controllers (Mode oder so). Dann sollte man die weder im AppDelegate setzen noch im AppDelegate eine App-Plist laden.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • Ich weiß nicht genau was du meinst. Ich setze die Default-Werte mit registerDefaults: grundsätzlich in +initialize meiner AppDelegate-Klasse und greife dann dort, wo ich es brauche auf NSUserDefaults zu. Auf Autosave-Mechnismen greift man doch grundsätzlich nicht mit NSUserDefaults zu, wobei ich nicht einmal sicher bin, ob die da überhaupt auch gespeichert werden (der Frame ein NSWindows z.B.).
  • jopjip schrieb:

    Ich weiß nicht genau was du meinst. Ich setze die Default-Werte mit registerDefaults: grundsätzlich in +initialize meiner AppDelegate-Klasse und greife dann dort, wo ich es brauche auf NSUserDefaults zu. Auf Autosave-Mechnismen greift man doch grundsätzlich nicht mit NSUserDefaults zu, wobei ich nicht einmal sicher bin, ob die da überhaupt auch gespeichert werden (der Frame ein NSWindows z.B.).

    Du hast einen Window-Controller, der zwei Modi beherrscht, etwa zur Anzeige. Das speichert er richtigerweise in den Defaults.

    Dann ist es nachteilig, in +initialize (AppDelegate) den Register zu machen, weil das ein Verstoß gegen den Grundsatz der Kapselung ist. In diesem Falle empfiehlt es sich vieemehr, das in +initialize (YourWindowCOntroller) zu machen. Was hat das AppDelegate damit zu tun?
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?