2017-08-04 20 views
0

我想用Alamofire發送數組。如何在Alamofire參數中使用數組?

我有什麼

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

我也有送陣列以這種格式後端 jobs[0]=1, jobs[1]=2等 我的關鍵是就業機會[0]和值1

這是基於Java的equlant

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

我該怎麼做?

+0

更新我的回答,顯示代碼來創建你的IDS –

回答

2

這裏是如何打印在SWIFT語法希望字符串的例子:

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

但我認爲你應該改爲嘗試這個辦法:

發送字典與主要「工作」和數組作爲該鍵的值。

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

var params = ["jobs":ids] 

編輯: - 更乾淨的代碼要特別感謝@Alexander

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

更好的陣列只使用'map':'讓PARAMS = [ 「工作」:jobs.map {$ 0.id}]' – Alexander

+0

OMG這個答案si性感..對不起..我剛剛開始與迅速..這是100%正確的 –

0

繼在Java中的實現,你可以用這個做相同的斯威夫特:

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)"]   
} 
相關問題