0

私はXcode 7.3.1とSwift2を使って作業しているiOSプロジェクトを持っています。私のプロジェクトでは、UITextFieldsがコード化されており、それぞれにactionが割り当てられています。私はUITextFieldDelegateも使用しています。ユーザーがテキストを入力した後、テキストを保存します。私はここで、セーブコードを置くのに最適な場所について答えを探しました。私はこのプロジェクトがデバイスのメモリに課税されることを望んでいません。私は、テキストを中に格納されていたことをtextFieldの名前を保存し、NSCoding経由で救うことができる多くのコード化されたUITextFieldテキストを保存するための最良のオプションは何ですか:NSCodingまたはNSUserDefaults?

class TextFieldSave: NSObject, NSCoding { 

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

    ... 
} 

:それは、のようなものをNSObjectNSCodingを使用してテキストを保存することをお勧めします。

または、単純にNSUserDefaultsで保存するとメモリが少なくなりますか?

textFieldのアクションにセービングコードを挿入することも、delegatetextFieldDidEndEditingセクションに30個すべてを組み込むこともできます。どちらが最善であるかわからない私はNSUserDefaultsが最も簡単だと思いますが、必ずしもメモリ使用には最適ではありません。

ご助言ありがとうございました。

答えて

0

私はNSUserDefaultsでセーブアップしました。セーブコードはそれぞれUITextFieldactionです。コードで作成しました。

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

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") 
} 
関連する問題