NSUserDefaults in iOS-Spielplatz

8

Es scheint ein seltsames Problem mit iOS-Spielplätzen zu sein, bei dem NSUserDefaults immer nil anstelle des tatsächlichen Wertes zurückgibt.

In einem iOS-Spielplatz gibt die letzte Zeile nil falsch zurück.

%Vor%

In einem OSX-Spielplatz gibt die letzte Zeile korrekt "Dies ist ein Test" zurück.

%Vor%

Irgendeine Idee, warum das ist? Käfer?

    
Daniel 03.07.2015, 15:28
quelle

4 Antworten

7

Das ist nicht wirklich ein Fehler ... NSUserDefaults ist an die iOS-Sandbox-Umgebung gebunden. Spielplätze werden in dieser Umgebung nicht ausgeführt. Daher können Sie keine Dateien auf die Festplatte schreiben. Wenn Sie diesen Code in der Anwendung ausführen, wenn er über den Simulator oder das Gerät ausgeführt wird, haben Sie Zugriff auf die Sandbox-Umgebung, und NSUserDefaults gibt eine ordnungsgemäße Referenz zurück. Ich sehe aber, dass ich auf Spielplätzen einen richtigen Bezug bekomme und Werte setzen und bekommen kann, also muss hier noch etwas anderes los sein. Ich würde mich einfach nicht darauf verlassen, dass dies die Art ist, diese Art von Funktionalität aufgrund der Natur zu testen.

Beachten Sie, was passiert, wenn ich den Store synchronisiere.

Der Wert wird null, weil es nichts gibt, gegen das man bestehen könnte.

    
TheCodingArt 03.07.2015 15:30
quelle
2

Der folgende Code funktioniert in iOS Playground Version 1.6.1 (Swift 4) :

%Vor%

druckt:

%Vor%     
Paulo Mattos 22.10.2017 18:14
quelle
1

Der Code funktioniert in Xcode 6.4 korrekt, schlägt aber in Xcode 7.0 beta (7A120f) fehl.

  1. Betas haben bekanntermaßen Bugs.
  2. Einen Fehler melden: Ссылка
zaph 03.07.2015 16:15
quelle
0

In Xcode 9.2 für iOS funktioniert es derzeit sogar, dass die UserDefaults zwischen den Wiederholungen des Spielplatzes gespeichert werden. Das hat mich zunächst irritiert, da ich erwartet hatte, dass die UserDefaults nach jedem Stopp wie gewohnt gereinigt werden würden. Also, eine Warnung: UserDefaults sind nun zwischen Wiederholungen persistent, besser daran denken, dass bei der Suche nach Fehlern, kann es Nebenwirkungen geben!

    
Jan 22.12.2017 11:02
quelle