保存大量编码的 UITextField 文本的最佳选择是什么:NSCoding 或 NSUserDefaults?

What is the best option for saving lots of coded UITextField text: NSCoding or NSUserDefaults?

我有一个 iOS 项目,正在使用 Xcode 7.3.1 和 Swift2。在我的项目中有 30 个编码 UITextFields,每个都有一个分配给它的 action。我也在用UITextFieldDelegate。用户输入文本后,我希望保存文本。我在这里搜索了有关放置保存代码的最佳位置的答案。我不希望这个项目占用设备的内存。使用 NSObjectNSCoding 保存文本是否更好,例如:

class TextFieldSave: NSObject, NSCoding {

    var userText: String = ""
    var textFieldName: String = ""

    ...
}

然后我可以保存存储文本的 textField 的名称并通过 NSCoding 保存。

或者用 NSUserDefaults 简单保存会不会占用更少的内存?

我可以将保存代码放在每个 textField 的操作中,或者以某种方式将所有 30 个代码合并到 delegatetextFieldDidEndEditing 部分。不确定哪个最好。我认为 NSUserDefaults 是最简单的,但不一定是内存使用的最佳选择。

感谢您的建议和帮助。

我最终通过 NSUserDefaults 保存,保存代码在我用代码创建的每个 UITextField action 中。

// Declaration of Variable
var nameDefaults: NSUserDefaults = NSUserDefaults.standardUserDefaults()

每个 action:

nameDefaults.setObject(variable, forKey: "KEYname")
nameDefaults.synchronize()

为了加载这些保存的值,我在 ViewWillAppear 中创建了一个 function 和 运行 函数。运行良好,似乎不会过多使用系统内存。

override func viewWillAppear(animated: Bool) {
    loadData()
}

loadData是:

if (nameDefaults.objectForKey("KEYname") != nil) {
    variable = (nameDefaults.objectForKey("KEYname") as! String)
    textField.text = variable
    print(variable)
} else {
    print("nil")
}