self.event?["start"].string
输出=可选(“1423269000000”)
我想获得1423269000000作为Int
我们怎样才能做到这一点?我尝试了很多方法,比如NSString(但它改变了价值)
答案 0 :(得分:3)
您的值:1,423,269,000,000
大于最大Int32值:2,147,483,647
。这可能会导致意外的铸造价值。有关详细信息,请查看以下内容:Numeric Types。
尝试运行此代码:
let maxIntegerValue = Int.max
println("Max integer value is: \(maxIntegerValue)")
在iPhone 4S模拟器中,控制台输出为:
Max integer value is: 2147483647
和iPhone 6模拟器一样,控制台输出是:
Max integer value is: 9223372036854775807
此信息可能对您有所帮助。
但通常将Int转换为String:
let mInt : Int = 123
var mString = String(mInt)
将String转换为Int:
let mString : String = "123"
let mInt : Int? = mString.toInt()
if (mInt != null) {
// converted String to Int
}
答案 1 :(得分:1)
以下是使用Optional Binding执行此操作的安全方法:
var json : [String:String];
json = ["key":"123"];
if var integerJson = json["key"]!.toInt(){
println("Integer conversion successful : \(integerJson)")
}
else{
println("Integer conversion failed")
}
<强>输出:强>
Integer conversion successful :123
通过这种方式,可以确定转化 成功或不,使用Optional Binding
答案 2 :(得分:0)
以防万一有人还在寻找更新的答案,这是Swift 5+版本:
let jsonDict = ["key": "123"];
// Validation
guard let value = Int(jsonDict["key"]) else {
print("Error! Unexpected value.")
return
}
print("Integer conversion successful: \(value)")
//打印“整数转换成功:123”
答案 3 :(得分:-1)
我不确定你的问题,但是说你有一本字典(它是JSON与否)你可以这样做:
var dict: [String : String]
dict = ["key1" : "123"]
var x : Int
x = dict["key1"].toInt()
println(x)