Json 将可选字符串快速转换为Int
这似乎是一个相当基本的问题,但由于某种原因,它一直未能得到解决。我正在使用Alamofire解析JSON,并试图获取一个头值,告诉我当前的api速率限制Json 将可选字符串快速转换为Int,json,swift,http-headers,alamofire,Json,Swift,Http Headers,Alamofire,这似乎是一个相当基本的问题,但由于某种原因,它一直未能得到解决。我正在使用Alamofire解析JSON,并试图获取一个头值,告诉我当前的api速率限制 if let xRate = String(describing: response.response?.allHeaderFields["X-Ratelimit-Remaining"])as String? { self.jsonCallsRemaining = xRate print(
if let xRate = String(describing: response.response?.allHeaderFields["X-Ratelimit-Remaining"])as String? {
self.jsonCallsRemaining = xRate
print("json: ", xRate)
print("json2: ", Int(xRate))
}
当尝试获取xRate的Int(或Float,或Double)时,我得到了“nil”。在控制台中,我看到:
json:可选(79)
json2:nil
似乎该数字将作为可选字符串返回。我错过了什么明显的东西吗?斯威夫特的新手。谢谢 也许,您的
字符串.init(description:)
是无关的,没有必要的
if let xRate = response.response?.allHeaderFields["X-Ratelimit-Remaining"] as? String {
self.jsonCallsRemaining = xRate
print("json: ", xRate)
print("json2: ", Int(xRate))
}
将
作为字符串处理?
如果让行结束,则将其作为字符串处理。谢谢@rmaddy,但Int(xRate)仍然返回为nil。@user2452063则该字符串可能不是有效的十进制整数。@AlexanderMomchliov我本来以为是这样,但也不能将其作为浮点或双精度处理。当打印出字符串时,它确实会显示如下数字:(89)。它在括号中吗?谢谢,这对我很有用。我可以发誓我在排除故障时尝试过这个,谢谢!