簡體   English   中英

將數組更改回字典-SWIFT

[英]Change array back to dictionary - SWIFT

我有一個用於創建字典的for循環,然后將字典附加到數組中。 我將字典追加到數組中,因為我不知道如何使用相同的鍵添加多個值,當我在for循環中這樣做時,鍵/值對才被更新,而舊的鍵/值對則被刪除將數組改回字典的最佳方法是什么?

import UIKit

class ViewController: UIViewController {


    var jobTitle = ""
    var jobDescription = ""


    var dict:[String: AnyObject] = ["jobTitle": "jobTitle", "jobDescription": "jobDescription"]

    var tArray = [[String: AnyObject]]()




    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

         for var i = 0; i < 3; ++i {

            jobTitle = "job1"
            jobDescription = "Desc1"

            dict["jobTitle"] = "job1"
            dict["jobDescription"] = "Desc1"

            tArray.append(dict)

               }


        println("\(tArray)")

}


}

您稱呼相同的任務

jobTitle = "job1"

在循環的每次迭代中。 當然,變量將始終包含相同的值。 dict也是如此。 這是一個ivar,因此您會不斷覆蓋它。

您要創建一個[String: AnyObject]類型的集合以添加到您的數組中。

let newDict:[String : AnyObject] = [titleKey : titleText, 
                                    descriptionKey : descriptionText]
tArray.append(newDict)

像這樣,每個鍵都有多個值:

let jobnames = ["j1", "j2", "j3"]
let jobdescs = ["d1", "d2", "d3"]

var dict : [String:[String]] = [:]

for index in 0..<3 {
  if nil == dict["jobTitle"] { dict["jobTitle"] = [] }
  if nil == dict["jobDesc" ] { dict["jobDesc" ] = [] }

  dict["jobTitle"]!.append(jobnames[index])
  dict["jobDesc" ]!.append(jobdescs[index])
}

這是輸出:

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM