所以最近我一直在制作一个具有文本框和标签的练习应用程序。当您在文本框中输入内容并点击保存时,它应该将标签更改为该文本并保存。它保存的原因是,当您打开应用程序时,标签的文本等于您保存的最后一件东西。如果您在文本框中点击保存新字符串,文本将再次保存。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