Swift 将可选字符串转换为 Int
Posted
技术标签:
【中文标题】Swift 将可选字符串转换为 Int【英文标题】:Swift Converting Optional String to Int 【发布时间】:2016-10-23 00:18:06 【问题描述】:这似乎是一个非常基本的问题,但由于某种原因无法解决。我正在使用 Alamofire 解析 JSON 并尝试获取一个标头值,该值告诉我当前的 api 速率限制。
if let xRate = String(describing: response.response?.allHeaderFields["X-Ratelimit-Remaining"])as String?
self.jsonCallsRemaining = xRate
print("json: ", xRate)
print("json2: ", Int(xRate))
当尝试获取 xRate(或 Float 或 Double)的 Int 时,我得到“nil”。在我看到的consolve中:
json: 可选(79)
json2: 无
该数字似乎以可选字符串的形式返回。我错过了一些明显的东西吗?斯威夫特新手。谢谢!
【问题讨论】:
去掉if let
行末尾的as String?
。
感谢@rmaddy,但 Int(xRate) 仍然返回为零。
@user2452063 那么字符串可能不是有效的十进制整数。
@AlexanderMomchliov 我原本以为是这样,但也无法将其作为浮点数或双精度数。打印出字符串时,它会显示如下数字:(89)。
括号里有吗?
【参考方案1】:
也许,您的String.init(describing:)
是多余的和不必要的。
if let xRate = response.response?.allHeaderFields["X-Ratelimit-Remaining"] as? String
self.jsonCallsRemaining = xRate
print("json: ", xRate)
print("json2: ", Int(xRate))
【讨论】:
谢谢,这对我有用。我可以发誓我在故障排除时尝试过这个,谢谢!以上是关于Swift 将可选字符串转换为 Int的主要内容,如果未能解决你的问题,请参考以下文章