2016-12-13 1 views
0

aufgerufen wird Ich arbeite an einer Anwendung, die die Verwendung von NSUserDefaults beteiligt. Ich habe erfolgreich zwei Zeichenfolgen gespeichert und versuche gerade, ein int zu speichern.NSUserDefault Fehler. Int wird als eine Zeichenfolge angezeigt, wenn

Dies ist der Code

var number = Int(0) 

override func viewDidLoad() { 
    super.viewDidLoad() 

let numberOne = NSUserDefaults.standardUserDefaults() 
    numberOne.setValue(number, forKey: "num") 

let numberTwo = numberOne.stringForKey("num") 

if numberTwo > 1 
    { 
     //will insert code later 
    } 

mein Fehler ist, dass numberTwo als String erscheint. Dies ist das erste Mal experimentieren mit NSUserDefault so, ich bin ein Anfänger, aber jede Hilfe wird geschätzt.

+0

es scheint, dass Sie für die String-Darstellung fragen, damit Sie es: stringForKey – Volker

+1

weil Sie String fragen, damit es Ihnen String mit 'stringForKey' –

+0

Sie vergleichen Äpfel (' String') mit Orangen ('Int') und verwenden nie' setValue: forKey' mit Benutzervorgaben. – vadian

Antwort

0

Wenn Sie es als Integer-Wert behandeln möchten, sho ULD-Set (Speicherung) und den Wert als ganze Zahl erhalten, unter Verwendung von setInteger:forKey: und integerForKey::

var number = Int(0) 

override func viewDidLoad() { 
    super.viewDidLoad() 

    let numberOne = NSUserDefaults.standardUserDefaults() 
    numberOne.setInteger(number, forKey: "num") 

    let numberTwo = numberOne.integerForKey("num") // 0 

    if numberTwo > 1 
    { 
     //will insert code later 
    } 
} 
+0

Danke! Lief wie am Schnürchen. – NICK

0

Wenn Ihr Wert ein Int ist, kann man es mit (Swift 3) abrufen

let numberTwo = numberOne.integer(forKey: "num") 

Wenn Swift 2 Ich glaube, es war

let numberTwo = numberOne.integerForKey("num") 

Sie können für mehr am UserDefaults API Reference einen Blick Details und weitere Optionen (wie object(forKey:), string(forKey:) ...)

Verwandte Themen