2016-10-13 14 views
1

たとえば、キー "abc"を持つUser Defaultsがあり、文字列が含まれています。Swift既存のユーザーのデフォルト値に値を追加する

このキーに格納されている最後の文字列は "aaa"です。

今、私はこのキーに追加の値を保存したいが、私はそれが必要なので最後の値 "aaa"を削除したくない。

文字列の配列に2番目のretreive:["aaa"、 "some_other_value"、 "some_other_value2" ...]が含まれています。

これは、ユーザデフォルトに情報を格納するために、これまで私のコードです:

self.user_defaults.set(self.myTextField.text, forKey:"asd") 

これは、データ取得のためのコードです:

if let arr = user_defaults.string(forKey:"asd"){ 
    print (arr) 
} 
+0

もし配列を格納したいのであれば、なぜ単純に 'String'を格納していますか? – rmaddy

+0

あなたはuserdefaults.sの代わりにplistを使用して毎回更新することができます – ashmi123

答えて

4

は新しい価値の保存のためのコードをfollwing試してみてください。

if let arr = user_defaults.array(forKey: "asd") 
     { 
      var arrvalues = arr as! [String] 
      arrvalues.append(self.myTextField.text) 
      self.user_defaults.set(arrvalues, forKey:"asd") 
      self.user_defaults.synchronize() 
      print (arr) 
     } 
     else 
     { 
      self.user_defaults.set([self.myTextField.text], forKey:"asd") 
     } 

これはデータを取得するためのコードです。

if let arr = user_defaults.array(forKey:"asd"){ 
    print (arr) 
} 
+0

ありがとうございました! それは働いています:) –

0
let asdArr = [String]() 
    if NSUserDefaults.standardUserDefaults().objectForKey("asd") != nil { 
     asdArr = NSUserDefaults.standardUserDefaults().objectForKey("asd") 
    } 
    asdArr.append(self.myTextField.text) 
    NSUserDefaults.standardUserDefaults().setObject(asdArr, forKey: "asd") 
+1

これは、アプリケーションが初めて実行されるときにクラッシュします。 – rmaddy

+0

pls編集済みの回答を確認します。 –

関連する問題