如何使用带有Alamofire参数的数组?

时间:2017-08-04 20:40:33

标签: ios swift swift3 alamofire

我想使用Alamofire发送数组。

我有什么

let params: Parameters = [
            id:job.id ?? 0,
        ]

我还必须以这种格式将数组发送到后端 jobs[0]=1, jobs[1]=2等 我的关键是作业[0],值为1

这是Java上的平等

for (int i = 0; i < size; i++) {
            final int id = job.getPuIds().get(i);
            params.put("job" + "[" + i + "]", String.valueOf(id));
        }

我怎么能这样做?

2 个答案:

答案 0 :(得分:2)

以下是如何使用swift语法打印所需字符串的示例:

for i in 0...jobs.count-1 {
    print("job[\(i)]=\(jobs[i].id)")
}

但我认为你应该试试这个:

发送包含键“jobs”的字典,并将数组作为该键的值。

var ids = [Int]()
for job in jobs {
        ids.append(job.id)
    }

var params = ["jobs":ids]

编辑:清洁代码 - 特别感谢@Alexander

let params = ["jobs": jobs.map{ $0.id }]

答案 1 :(得分:0)

在Java中实现之后,您可以使用以下方法在Swift中执行相同的操作:

var params: [String:Any] = [:]

for (index, _) in yourArray.enumerated() {
    let id = job.getPuIds()[index]
    params["job[\(index)]", "\(id)"]

}

查看您的实现我认为我可以猜测size变量基于job.getPuIds()中返回的内容,在这种情况下代码可以简化:

var params: [String:Any] = [:]

for (index, id) in job.getPuIds().enumerated() {
    params["job[\(index)]", "\(id)"]        
}