Так недавно я делал практическое приложение с текстовым полем и меткой. Когда вы вводите что-то в текстовое поле и нажмите «Сохранить», он должен заменить ярлык на этот текст и сохранить его. Причина, по которой она сохраняется, заключается в том, что при открытии приложения текст ярлыка равен последней сохраненной вами вещи. Текст снова будет сохранен, если вы нажмете сохранить новую строку в текстовом поле.По умолчанию значения 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 Загрузите, что вы не захватили значение по умолчанию для метки. Он всегда будет показывать пустой слишком –
Сколько новых счетов на SO в неделю вы собираетесь создать, Лукас? ;-) – vadian
Я не делаю счета – MazzaMan