如何在没有收到警告的情况下将其他json值作为参数传递给Alamofire?

时间:2018-01-08 15:15:59

标签: json swift alamofire

我收到了警告:

  

隐式强制表达来自任何?'任何

在这种情况下,replyTo变量是可选的Int?。我需要它是一个可选值,因为我希望它在服务器端的json参数中为空,如果它是空的。我可以做replyTo ?? 0并给它一个初始值,但我确实需要它在json中为null值。如何在不收到此警告的情况下执行此操作?

let parameters: [String: Any?] = ["replyTo": replyTo, "fromId": fromUser.id, "toId": toUser.id, "message": message]

let urlString = "\(Config.URL)/api/message"

Alamofire.request(urlString, method: .post, parameters: parameters, encoding: JSONEncoding.default, headers: nil).responseJSON { (response: DataResponse<Any>) in

}

1 个答案:

答案 0 :(得分:0)

根据documentation

  

Any类型表示任何类型的值,包括可选类型。   如果您使用值为值的可选值,Swift会向您发出警告   任何类型的预期。如果你确实需要使用可选项   如果值为Any值,则可以使用as运算符显式转换   Any的可选项,如下所示。

let optionalNumber: Int? = 3
things.append(optionalNumber)        // Warning
things.append(optionalNumber as Any) // No warning

因此,在您的特定情况下,您应该能够禁止警告。

let parameters: [String: Any] = ["replyTo": replyTo as Any, "fromId": fromUser.id, "toId": toUser.id, "message": message]