Ios 在结构上使用userdefaults

Ios 在结构上使用userdefaults,ios,string,struct,swift3,nsuserdefaults,Ios,String,Struct,Swift3,Nsuserdefaults,我正在将数据手动输入结构。但是,结构没有保存数据。我尝试使用userdefaults,但它不起作用。我希望数据始终显示在标签benCarson上,如果它位于结构中,则该标签错误 视图控制器1 struct bad { static var mm = [String]() } 视图控制器2 class ViewController2: UIViewController { @IBOutlet var benCarson: UILabel! override func vi

我正在将数据手动输入结构。但是,结构没有保存数据。我尝试使用userdefaults,但它不起作用。我希望数据始终显示在标签
benCarson
上,如果它位于结构
中,则该标签
错误

视图控制器1

struct bad {
    static var mm = [String]()
}
视图控制器2

class ViewController2: UIViewController {
    @IBOutlet var benCarson: UILabel!
    override func viewDidLoad() {
        super.viewDidLoad()
        benCarson.text = ViewController.bad.mm.map { " \($0)" }.joined(separator:"\n")
    }
}

我认为不需要struct,只要使用UserDefaults就可以了

用于保存

let mm = ["adsa", "safds", "twer", "qwer", "dfas"]
let defaults = UserDefaults.standard
defaults.set(mm, forKey: "SavedStringArray")
defaults.synchronize()
let defaults = UserDefaults.standard
let myarray = defaults.stringArray(forKey: "SavedStringArray") ?? [String]()
benCarson.text = myarray.map { " \($0)" }.joined(separator:"\n")
用于检索

let mm = ["adsa", "safds", "twer", "qwer", "dfas"]
let defaults = UserDefaults.standard
defaults.set(mm, forKey: "SavedStringArray")
defaults.synchronize()
let defaults = UserDefaults.standard
let myarray = defaults.stringArray(forKey: "SavedStringArray") ?? [String]()
benCarson.text = myarray.map { " \($0)" }.joined(separator:"\n")

我认为不需要struct,只要使用UserDefaults就可以了

用于保存

let mm = ["adsa", "safds", "twer", "qwer", "dfas"]
let defaults = UserDefaults.standard
defaults.set(mm, forKey: "SavedStringArray")
defaults.synchronize()
let defaults = UserDefaults.standard
let myarray = defaults.stringArray(forKey: "SavedStringArray") ?? [String]()
benCarson.text = myarray.map { " \($0)" }.joined(separator:"\n")
用于检索

let mm = ["adsa", "safds", "twer", "qwer", "dfas"]
let defaults = UserDefaults.standard
defaults.set(mm, forKey: "SavedStringArray")
defaults.synchronize()
let defaults = UserDefaults.standard
let myarray = defaults.stringArray(forKey: "SavedStringArray") ?? [String]()
benCarson.text = myarray.map { " \($0)" }.joined(separator:"\n")

无需强制同步EBTW Swift是一种类型推断语言,使用nil合并运算符时无需指定数组类型。只需传递一个空数组
??[]
无需强制同步EBTW Swift是一种类型推断语言,使用nil合并运算符时无需指定数组类型。只需传递一个空数组
??[]
以大写字母开头命名结构是Swift惯例以大写字母开头命名结构是Swift惯例