2017-07-26 10 views
1

私はセットを行い、メソッドをこのデータマネージャークラスに、辞書から取得しようとしていて、セットの中に辞書の値を挿入してメソッドを取得する方法がわかりません(私はそれをarray to Dic)ありがとう辞書をsetメソッドswiftに表示するにはどうすればいいですか?

,
+0

あなたは[文字列:文字列、パスを_]にアクセスする方法を意味しますか? –

+0

はい@davidPasztor – Moran

答えて

0

あなたの質問に答える鍵は、設定したい変数のタイプを知ることです。この場合

、recordsArray変数は文字列値とキーの辞書の配列である:[[文字:文字列]]

そこで、このパラメータを渡すための一つの方法は、同じタイプの変数を作成することです

public func setRecordsArray(array:[[String:String]]) { 
     self.recordsArray = array 
     defaults.set(self.recordsArray, forKey: self.userRecord) 
    } 

単純にself.recordsArray変数の値を更新し、ユーザーのデフォルト値を設定します。

getメソッドも同様ですが、返される同じ型の変数を返します。また

public func getRecordsArray() -> [[String:String]]?{ 
     if let array = defaults.object(forKey: self.userRecord) as? [[String:String]]{ 
      self.recordsArray = array 
      return array 
     } 
     return nil 
    } 

、あなたは配列内の挿入要素の設定方法を行うことができます。

?は一切保存されたユーザーdefaltsが存在しない場合、メソッドはnilを返すので、お返しに追加されました。 この場合には、パラメータの種類が[文字列:文字列]のようにする必要があります関数の本体から、この配列の要素の型:

public func setRecord(record:[String:String]) { 
     if let array = defaults.object(forKey: self.userRecord) as? [[String:String]]{ 
      self.recordsArray = array 
      self.recordsArray.append(record) 
      defaults.set(self.recordsArray, forKey: self.userRecord) 
     } else{ 
      self.recordsArray.append(record) 
      defaults.set(self.recordsArray, forKey: self.userRecord) 
     } 
    } 
+0

ありがとうございます - それは答えです! – Moran

関連する問題