2017-11-22 10 views
1

私はproduct_quantityというキーを持つ辞書を持っています。今すぐproduct_quantityの値は '1'です。しかし、後でproduct_quantityは、ピッカービューから別の値を取得し、その時点で、辞書のproduct_quantityの値を更新したいとします。つまり、辞書の値を更新したいと思います。しかし、どのように私は把握することができません達成することができます。辞書の値を適切なインデックスで更新する

私が与えたindexはちょうどvar index = Int()として初期化されていて、常に0の値を持っています。これはうまくいきません。

ホープ誰かが必要なデータを保持するためにstructを使用しないのはなぜ...

self.appDelegate.myDictionary["product_quantity"] = cell.qtyPickerField.text! 

self.appDelegate.arrayOfDictionary[index] = self.appDelegate.myDictionary 

答えて

0

これはそう... tableviewcellの

インデックスは次のように見つけることができるように、共通int型変数が宣言されていた...

let indexPath = self.tableview.indexPath(for: cell) 
    if let index1 = indexPath {    

    } 

を固定しての値ましたindex10はその変数に割り当てられ、その変数は辞書の配列に渡されました。

let indexPath = self.tableview.indexPath(for: cell) 
     if let index1 = indexPath {    
     self.theValueOfIndex = index1[0] 
    } 

その後、

myDictionary["product_quantity"] = cell.qtyPickerField.text! 


arrayOfDictionary[self.theValueOfIndex] = myDictionary 

これは正しいインデックスの値を更新しました。

+1

'index1 [0]'はコンパイルしますが、 'indexPath.row'ではなく' indexPath.section'と同等であると考えます。いずれにしても、人間が読める*メンバー 'row'と' section'を使うことを強くお勧めします。 – vadian

+0

Ok @vadian。ありがとう...しかし希望のものは、彼らが今望んでいる結果を与える際に何の問題も与えないでしょう... – bvt

+0

'セクション'を使うつもりなら、すべてうまくいきます。 – vadian

0

を助けることができます。

struct Product { 
    var quantity: Int 
} 

次に、この構造体のオブジェクトを作成します。

var product = Product(quantity: 0) 

次に、プログラムの後のある時点で数量変数を更新するだけで済みます。

product.quantity = 10 

更新: ちょうどあなたの編集を見ました。

struct Product { 
    var quantity: Int 
} 

struct MyData { 
    var product: Product 
    mutating func updateProduct(quantity: Int) { 
     product.quantity = quantity 
    } 
} 


var product = Product(quantity: 0) 
var myData = MyData(product: product) 
print(myData.product.quantity) 

// call the updateProduct method to update the quantity. 
myData.updateProduct(quantity: 20) 
print(myData.product.quantity) 
+0

ですが、これは辞書の値が更新される結果になります..正しいインデックスで...? – bvt

+0

@bvt私は答えを編集しました。 – MjZac

+0

ok @MjZac。ここで私はあなたが0から20までの数量を更新しているのを見ることができます。しかし、私の更新された値は、私の辞書の正しいインデックスに移動する必要があります。どのようにそれを行うことができます..? – bvt