如何在Swift中将Int32转换为Int?

时间:2015-06-05 07:16:44

标签: swift core-data int type-conversion

应该很容易,但我只能找到反向转换。 如何在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!)
 }

4 个答案:

答案 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)
相关问题