所以最近我一直在製作一個具有文本框和標籤的練習應用程序。當您在文本框中輸入內容並點擊保存時,它應該將標籤更改爲該文本並保存。它保存的原因是,當您打開應用程序時,標籤的文本等於您保存的最後一件東西。如果您在文本框中點擊保存新字符串,文本將再次保存。NSUser默認不能正確保存?
我遇到的問題是,標籤不會顯示文本,直到您保存新內容並且字符串未保存,因此即使您保存了某些內容,它們也不存在。
下面是從ViewController.swift我的代碼:
//
// ViewController.swift
// Help
//
// Created by Lucas on 9/30/15.
// Copyright (c) 2015 Lucas. All rights reserved.
//
import UIKit
class ViewController: UIViewController {
@IBOutlet var Savedlbl: UILabel!
@IBOutlet var Textfield: UITextField!
@IBOutlet var Label: UILabel!
var current = ""
var Saved = ""
override func viewDidLoad() {
super.viewDidLoad()
let currentDefault = NSUserDefaults.standardUserDefaults()
Savedlbl.text = Saved
if(currentDefault.valueForKey("Saved") != nil)
{
self.Saved = currentDefault.valueForKey("Saved") as! NSString! as String
}
// Do any additional setup after loading the view, typically from a nib.
}
@IBAction func Set(sender: AnyObject) {
setall()
}
func setall()
{
current = Textfield.text!
Label.text = Textfield.text!
let currentDefault = NSUserDefaults.standardUserDefaults()
Saved = (currentDefault.valueForKey("saved") as? String)!
currentDefault.setValue(Saved, forKey: "saved")
Savedlbl.text = Textfield.text
currentDefault.synchronize()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
這裏就是我認爲這個問題是在視圖中做負載會是有意義的。當應用程序加載它不會將其設置爲保存的最後一件事。
import UIKit
class ViewController: UIViewController {
@IBOutlet var Savedlbl: UILabel!
@IBOutlet var Textfield: UITextField!
@IBOutlet var Label: UILabel!
var current = ""
var Saved = ""
override func viewDidLoad() {
super.viewDidLoad()
let currentDefault = NSUserDefaults.standardUserDefaults()
Savedlbl.text = Saved
if(currentDefault.valueForKey("Saved") != nil)
{
self.Saved = currentDefault.valueForKey("Saved") as! NSString! as String
}
// Do any additional setup after loading the view, typically from a nib.
}
謝謝,讓我知道如果您需要更多的信息,我會盡快提供!
in View加載了您尚未將默認值添加到標籤。它也會一直顯示爲空 –
盧卡斯每週要創建多少個新賬戶? ;-) – vadian
我沒有賬戶 – MazzaMan