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

How can I convert Int32 to Int in Swift?

应该很容易,但我只能找到反向转换。 如何在 Swift 中将 Int32 转换为 Int? 除非问题不同?

我在 Core Data 中存储了一个值,我想 return 将其作为 Int。

这是我正在使用的代码,它不起作用:

func myNumber () -> Int {
    var myUnit:NSManagedObject
    myUnit=self.getObject(“EntityName”) // This is working.

    return Int(myUnit.valueForKey(“theNUMBER”)?.intValue!)
 }

我是不是漏掉了什么,或者这不是简单得离谱吗?

let number1: Int32 = 10
let number2 = Int(number1)

错误是你的?在 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
}

Swift 4.0 生产 "Cannot invoke initializer for type 'Int' with an argument list of type '(() -> Int32)"

let number1: Int32 = 10
let number2 = Int(number1)

就这么办

Int("\(Int32value)")

我无法理解为什么 swift 让事情变得困难。

有时是“?”让事情变得扭曲, 添加“!”到 Int32,然后将其转换为 int works

let number1 = someInt32!
let number2 = Int(number1)