gpt4 book ai didi

swift - 在 alamofire 中发送数组的数组

转载 作者:行者123 更新时间:2023-11-30 11:26:24 24 4
gpt4 key购买 nike

我从事一个用于药物提醒的 swift 项目,该应用程序可以离线和在线工作,因此用户可以保存大量提醒,一旦互联网可用,我需要将对象数组发送到 API。我正在使用阿拉莫菲尔 4.4这是我获取参数并将其放入数组的代码

var medArrTosendToServer =  [(_id:String, _timing:String)]()

func getParameters() -> [[String: AnyObject]] {
var result = [[String: AnyObject]]()

for med in medArrTosendToServer {
let medRes: [String: AnyObject] = [
"device_id": DEVICE_ID as AnyObject,
"userProfileID": userProfileID as AnyObject,
"medName": med._medName as AnyObject,
"timing": med._timing as AnyObject

]
result.append(medRes)
}
print(result)
return result
}

并在sned to server函数中

    func sendDataToServer() {

let param = getParameters()

Alamofire.request(URL_POST_UserProfile, method: .post, parameters: param )

.responseJSON

{ response in

switch response.result {

case .success( _):

if let JSON = response.result.value{

// here if success

}

case .failure(let error):

print(error)

// self.stopAnimating()

}

}

}else{

//self.stopAnimating()

}

}

但我收到一条错误消息“调用中存在额外参数‘方法’”。因此,如果有人有处理此案的想法,请与我分享

谢谢

最佳答案

由于 Alamofire parameters 需要 [String: Any] 类型,因此您需要创建一个 URLRequest 并将您的 Array 添加到正文中,如下所示:

func uploadDataToServer(dataToUpload: [[String: Any]], completionHandler:@escaping (Bool) -> ()){

let urlString = "Your url string"
guard let url = URL(string: urlString) else {
return
}
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
do {
request.httpBody = try JSONSerialization.data(withJSONObject: dataToUpload)
} catch let error {
print(error)
}


Alamofire.request(request).responseJSON{ (response) in

print("Success: \(response)")
switch response.result{
case .success:
if let statusCode: Int = response.response?.statusCode {
switch statusCode{
case 200:
completionHandler(true)
break
default:
completionHandler(false)
break
}
break
}
case .failure:
completionHandler(false)
break
}
}
}

此外,[String: Any] 是更好的选择,因为它可以存储 Any-Type 的值,但 AnyObject 将仅采用 对象类型。另外,[[String: AnyObject]] 不是 ArrayArray,它是 Dictionaries 的 Array .

关于swift - 在 alamofire 中发送数组的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50701165/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com