ユーザーがボタンを押すたびに配列に何かを追加して、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}
}
}
誰かがテキストフィールドに送信するたびに配列を大きくしようとしています
コードを改善し、問題を解決しました。したがって、先に進んで以下のコードを確認し、コメントでレビューを共有してください。
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 ?? "")")
}
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加