Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json 将可选字符串快速转换为Int_Json_Swift_Http Headers_Alamofire - Fatal编程技术网

Json 将可选字符串快速转换为Int

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(

这似乎是一个相当基本的问题,但由于某种原因,它一直未能得到解决。我正在使用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的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)。它在括号中吗?谢谢,这对我很有用。我可以发誓我在排除故障时尝试过这个,谢谢!