首页 > 解决方案 > 如何将这个 JS 对象数组转换为 Swift 元组数组?

问题描述

我正在尝试在 Swift 中构建我的数据,但我很难初始化嵌套元组和数组的空数组。

我是 Swift 新手,对 JS 非常熟悉。
以下是我的数据在 JS 中的结构:

let data = [] // Loop will push objects into this variable

// This is the object that would be pushed into data from within a loop - for range in ranges
ranges.forEach(range => {
    data.push({
        [range]: {
            'minDate': Date(),
            'minDateText': '',
            'tags': [{
                'name': '',
                'color': '',
                'total': ''
            }]
        }
    });
});

我已经快速尝试了一些不同的东西,但我就是不明白。似乎您必须在实际保存任何数据之前对数组进行精确表示。我需要在没有任何数据的情况下对其进行初始化。

我尝试过的最新方法是:

var data:[(String:(String:Date, String:String, String:[(String:String, String:String, String:String)]))] = [] 
// Get error "Cannot create a single-element tuple with an element label"

标签: arraysswifttuples

解决方案


你应该停止思考如何用 JS 编码,开始阅读如何用 Swift 编码。您可以从Apple Swift book开始,它几乎涵盖了您入门所需的所有内容。所以你真正需要的是结构化你的数据:

struct Object {
    let minDate: Date
    let minDateText: String
    let tags: [Tag]
}

struct Tag {
    let name: String
    let color: String
    let total: String
}

然后你可以用它创建一个字典或数组:

var dictionary: [String: Object] = [:]
var objects: [Object] = []

推荐阅读