首页 文章

将数组更改回字典 - SWIFT

提问于
浏览
0

我有一个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)")

}


}

2 回答

  • 0

    你调用相同的任务,如

    jobTitle = "job1"
    

    在循环的每次迭代中 . 当然,变量将始终包含相同的值 . dict 也是如此 . 这是一个伊娃,所以你一直在覆盖它 .

    你想要的是创建一个 [String: AnyObject] 类型的集合 [String: AnyObject] 添加到您的数组 .

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

    像这样,你有多个与每个键关联的值:

    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])
    }
    

    这是输出:

    enter image description here

相关问题