0

我有一个iOS项目,我正在使用Xcode 7.3.1和Swift2。在我的项目中,有30个编码UITextFields,每个编号分配action。我也使用UITextFieldDelegate。用户输入文字后,我希望文字被保存。我在这里搜索了解放保存代码的最佳位置的答案。我不想让这个项目对设备的内存征税。它是更好地使用NSObjectNSCoding,像保存文本:保存大量编码的UITextField文本的最佳选择是什么:NSCoding或NSUserDefaults?

class TextFieldSave: NSObject, NSCoding { 

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

    ... 
} 

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

或者只是简单地用NSUserDefaults保存就会减少内存吗?

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

感谢您的建议和帮助。

回答

0

我最后通过NSUserDefaults进行了保存,并且保存代码位于每个代码中的UITextFieldaction

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

在各action

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

要加载这些保存的值,我创建一个function并运行ViewWillAppear该函数。运行良好,似乎并没有太多地使用系统内存。

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") 
}