应该很容易,但我只能找到反向转换。 如何在Swift中将Int32转换为Int? 除非问题不同?
我有一个存储在Core Data中的值,我希望将其作为Int。
返回以下是我正在使用的代码,但不起作用:
func myNumber () -> Int {
var myUnit:NSManagedObject
myUnit=self.getObject(“EntityName”) // This is working.
return Int(myUnit.valueForKey(“theNUMBER”)?.intValue!)
}
答案 0 :(得分:35)
我错过了什么或不是这么荒谬吗?
let number1: Int32 = 10
let number2 = Int(number1)
答案 1 :(得分:7)
错误是你的?在valueForKey之后。
Int初始值设定项不接受选项。
通过myUnit.valueForKey(“theNUMBER”)?.intValue!
给你一个可选的值和!最后并没有帮助它。
只需替换为:
return Int(myUnit.valueForKey(“theNUMBER”)!.intValue)
但是如果你想要它是安全的话,你也可以这样做:
return myUnit.valueForKey(“theNUMBER”)?.integerValue ?? 0
为了缩短你的功能,你可以这样做:
func myNumber() -> Int {
let myUnit = self.getObject("EntityName") as! NSManagedObject
return myUnit.valueForKey("theNUMBER")?.integerValue ?? 0
}
答案 2 :(得分:2)
Swift 4.0产生“无法为类型为'((()-> Int32))的参数列表调用类型'Int'的初始化程序”
let number1: Int32 = 10
let number2 = Int(number1)
只需执行
Int("\(Int32value)")
我不明白为什么迅捷使事情变得困难。
答案 3 :(得分:1)
有时是“?”使事情扭曲, 加“!”到Int32,然后将其转换为int作品
let number1 = someInt32!
let number2 = Int(number1)