用户默认,每次用户提交按钮时附加输入的数字
User defaults, append the number entered each time a user submits a button
我试图在每次用户按下按钮时向数组追加一些内容并将其保存为 UserDefault。
我可以根据用户输入的内容将我的文本字段保存为用户默认值,但我无法将其保存并附加到我的数组中。
import UIKit
var nums = ["3","4","5"]
class ViewController: UIViewController {
@IBOutlet weak var text: UITextField!
@IBAction func submit_button(_ sender: Any) {
UserDefaults.standard.set(text.text!, forKey: "Submitted")
// append
nums.append("\(String(describing: text))")
}
override func viewDidLoad() {
super.viewDidLoad()
let savedscore = UserDefaults.standard.object(forKey: "Submitted")
if let saving = savedscore as?
String{text.text = saving}
}
}
每次有人在文本字段中提交时,我都试图让我的数组增长
最后一个值
保存
let str = text.text!
UserDefaults.standard.set(str, forKey: "Submitted")
nums.append(str)
阅读
if let savedscore = UserDefaults.standard.string(forKey: "Submitted") {
self.text.text = savedscore
}
为数组
保存
let str = text.text!
nums.append(str)
UserDefaults.standard.set(nums, forKey: "Submitted")
阅读
if let arr = UserDefaults.standard.array(forKey: "Submitted") as? [String] {
print(arr)
// set first value or what you need
self.text.text = arr.first
}
您可以在按钮操作中追加文本后保存数组
@IBAction func submit_button(_ sender: Any) {
UserDefaults.standard.set(text.text!, forKey: "Submitted")
// append
nums.append("\(String(describing: text.text!))")
UserDefaults.standard.set(nums, forKey: "nums")
}
并获取值使用
if let nums = UserDefaults.standard.array(forKey: "nums") as? [String] {
print(nums)
}
或者您可以将计算 属性 与 属性 观察器一起使用,以便在附加新值时自动将数组保存在 UserDefaults 中。
class ViewController: UIViewController {
var nums: [String] {
get {
return UserDefaults.standard.array(forKey: "arrayValue") as? [String] ?? []
}
set {
UserDefaults.standard.set(newValue, forKey: "arrayValue")
}
}
@IBOutlet weak var text: UITextField!
@IBAction func submit_button(_ sender: Any) {
nums.append(text.text!)//Array updated in UserDefaults automatically
}
override func viewDidLoad() {
super.viewDidLoad()
print(self.nums)//Array fetched from UserDefaults
}
}
我已经改进了您的代码并解决了您的问题。所以,请继续检查下面的代码并在评论中分享您的评论。
import UIKit
class ViewController: UIViewController {
var nums = [String]()
@IBOutlet weak var textField: UITextField!
@IBAction func submit_button(_ sender: Any) {
if let text = textField.text {
// Append to array
nums.append("\(text)")
// Save to User Defaults
UserDefaults.standard.set(nums, forKey: "NumberOfArray")
UserDefaults.standard.set(textField.text, forKey: "Submitted")
// Refresh User Defaults
UserDefaults.standard.synchronize()
}
// Print Updated Data
print("numbers: \(nums)")
print("text: \(textField.text ?? "")")
}
override func viewDidLoad() {
super.viewDidLoad()
let savedscore = UserDefaults.standard.object(forKey: "Submitted")
if let saving = savedscore as? String
{
textField.text = saving
}
// Update Array Based on userdefault data.
nums = UserDefaults.standard.object(forKey: "NumberOfArray") as? [String] ?? []
// Print Saved Data
print("numbers: \(nums)")
print("text: \(textField.text ?? "")")
}
}
我试图在每次用户按下按钮时向数组追加一些内容并将其保存为 UserDefault。
我可以根据用户输入的内容将我的文本字段保存为用户默认值,但我无法将其保存并附加到我的数组中。
import UIKit
var nums = ["3","4","5"]
class ViewController: UIViewController {
@IBOutlet weak var text: UITextField!
@IBAction func submit_button(_ sender: Any) {
UserDefaults.standard.set(text.text!, forKey: "Submitted")
// append
nums.append("\(String(describing: text))")
}
override func viewDidLoad() {
super.viewDidLoad()
let savedscore = UserDefaults.standard.object(forKey: "Submitted")
if let saving = savedscore as?
String{text.text = saving}
}
}
每次有人在文本字段中提交时,我都试图让我的数组增长
最后一个值
保存
let str = text.text!
UserDefaults.standard.set(str, forKey: "Submitted")
nums.append(str)
阅读
if let savedscore = UserDefaults.standard.string(forKey: "Submitted") {
self.text.text = savedscore
}
为数组
保存
let str = text.text!
nums.append(str)
UserDefaults.standard.set(nums, forKey: "Submitted")
阅读
if let arr = UserDefaults.standard.array(forKey: "Submitted") as? [String] {
print(arr)
// set first value or what you need
self.text.text = arr.first
}
您可以在按钮操作中追加文本后保存数组
@IBAction func submit_button(_ sender: Any) {
UserDefaults.standard.set(text.text!, forKey: "Submitted")
// append
nums.append("\(String(describing: text.text!))")
UserDefaults.standard.set(nums, forKey: "nums")
}
并获取值使用
if let nums = UserDefaults.standard.array(forKey: "nums") as? [String] {
print(nums)
}
或者您可以将计算 属性 与 属性 观察器一起使用,以便在附加新值时自动将数组保存在 UserDefaults 中。
class ViewController: UIViewController {
var nums: [String] {
get {
return UserDefaults.standard.array(forKey: "arrayValue") as? [String] ?? []
}
set {
UserDefaults.standard.set(newValue, forKey: "arrayValue")
}
}
@IBOutlet weak var text: UITextField!
@IBAction func submit_button(_ sender: Any) {
nums.append(text.text!)//Array updated in UserDefaults automatically
}
override func viewDidLoad() {
super.viewDidLoad()
print(self.nums)//Array fetched from UserDefaults
}
}
我已经改进了您的代码并解决了您的问题。所以,请继续检查下面的代码并在评论中分享您的评论。
import UIKit
class ViewController: UIViewController {
var nums = [String]()
@IBOutlet weak var textField: UITextField!
@IBAction func submit_button(_ sender: Any) {
if let text = textField.text {
// Append to array
nums.append("\(text)")
// Save to User Defaults
UserDefaults.standard.set(nums, forKey: "NumberOfArray")
UserDefaults.standard.set(textField.text, forKey: "Submitted")
// Refresh User Defaults
UserDefaults.standard.synchronize()
}
// Print Updated Data
print("numbers: \(nums)")
print("text: \(textField.text ?? "")")
}
override func viewDidLoad() {
super.viewDidLoad()
let savedscore = UserDefaults.standard.object(forKey: "Submitted")
if let saving = savedscore as? String
{
textField.text = saving
}
// Update Array Based on userdefault data.
nums = UserDefaults.standard.object(forKey: "NumberOfArray") as? [String] ?? []
// Print Saved Data
print("numbers: \(nums)")
print("text: \(textField.text ?? "")")
}
}