我收到了警告:
隐式强制表达来自任何?'任何
在这种情况下,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
}
答案 0 :(得分:0)
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]