ios - 如何将此数组拆分为单独的元素/数组以在 Swift 的表中使用?

标签 ios arrays swift

我有以下代码,我认为使用 for (_ , value) in dict { 将我的数组 (dict) 分成 3 个部分。

      let json = try JSONSerialization.jsonObject(with: data!, options: .allowFragments) as? [String:AnyObject]
                    print (json!)

                    if let dict = json?["playerForm"] as? [String:AnyObject] {
                        print ("step 1")

                        for (_ , value) in dict {
                            if let arr = value as? [[String:Any]] {
                                print(arr)
                               self.leagueForm = arr.flatMap { Form($0) }

                                for i in 0..<self.leagueForm.count {

                                     let form = self.leagueForm[i]
                                     self.formGuide.append(form.player_result!)

                                }
                                print ("break")

                            }
                        }


                        print (self.formGuide)
                    }

我希望在 self.leagueForm 中有 3 个元素包含每个球员的数据。

然后将此数据放入此自定义类中:

struct Form {
    var player_result: String?
    var player_name: String?
    var result_date: String?
    var result_id: String?

    init(_ dictionary: [String : Any]) {
        self.player_result = dictionary["result"] as? String ?? ""
        self.player_name = dictionary["name"]  as? String ?? ""
        result_date = dictionary["date"]  as? String ?? ""
        result_id = String(dictionary["results_id"]  as? Int ?? 0)

    }
}

var leagueForm = [Form]()

当我print (arr) 时,它会打印完整的数组。

我的目标是在自定义类中拥有 3 组数据,每个玩家一组。您可以在下面的屏幕截图中看到每个玩家的休息时间。

enter image description here

在此图片的最后一行,您可以看到每个玩家的表单已添加到一个元素中。

我想要的是类似下面的东西:

[name: G , results: "W", "D", "W", "D", "W", "W", "D", "L"] 
[name: Dicky, results: "L", "L", "D", "W", "L", "W", "W", "W"]
[name: Sultan, results: "W", "W", "D", "L", "L", "L", "D", "L"]

然后我可以将其传递到表格中以显示结果。

我如何实现这一点?或者我如何测试我的自定义类以查看我目前所处的位置?

最佳答案

你可以这样实现

var arrResult : [String] = []
let arrMainData = [["name":"ABC","result":"result1"],["name":"ABC","result":"result2"],["name":"ABC","result":"result3"]]

let name : String! = arrMainData[arrMainData.count-1]["name"]

for index in 0...arrMainData.count-1{
    arrResult.append(arrMainData[index]["result"]!)
}

let myArr : [String: AnyObject] = ["name" : name,"arrResult":arrResult]
print(myArr)

结果应该像 [name: ABC , results:["result1","re​​sult2","re​​sult3"]]

关于ios - 如何将此数组拆分为单独的元素/数组以在 Swift 的表中使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42039859/

相关文章:

ios - isMainThread 和 currentThread == mainThread 有什么区别?

ios - 应用程序编译并在没有框架的情况下工作

c - 初始化结构指针数组会导致奇怪的错误

ios - 文本底部在 detailTextLabel 中被截断

swift - 根据参数调用不同的函数

ios - 如何在iOS中正确注册推送通知?

ios - 对象命名约定

ios - 更改 UIPageViewController 中显示的初始 View Controller

Javascript,数组在不同的地方显示不同的长度

python - 将数组写入 csv python(一列)