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

Mic*_*hel 22 int core-data type-conversion swift

应该很容易,但我只能找到反向转换.如何在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!)
 }
Run Code Online (Sandbox Code Playgroud)

Een*_*dje 35

我错过了什么或不是这么荒谬吗?

let number1: Int32 = 10
let number2 = Int(number1)
Run Code Online (Sandbox Code Playgroud)


Arb*_*tur 9

错误是你的?在valueForKey之后.

Int初始值设定项不接受选项.

通过做myUnit.valueForKey(“theNUMBER”)?.intValue!你给你一个可选的值和!最后并没有帮助它.

只需替换为:

return Int(myUnit.valueForKey(“theNUMBER”)!.intValue)
Run Code Online (Sandbox Code Playgroud)

但如果您希望它是安全的,您也可以这样做:

return myUnit.valueForKey(“theNUMBER”)?.integerValue ?? 0
Run Code Online (Sandbox Code Playgroud)

为了缩短你的功能,你可以这样做:

func myNumber() -> Int {
    let myUnit = self.getObject("EntityName") as! NSManagedObject

    return myUnit.valueForKey("theNUMBER")?.integerValue ?? 0
}
Run Code Online (Sandbox Code Playgroud)


Aab*_*aza 8

Swift 4.0 生成“无法使用类型为 '(() -> Int32) 的参数列表调用类型为 'Int' 的初始化程序”

let number1: Int32 = 10
let number2 = Int(number1)
Run Code Online (Sandbox Code Playgroud)

只需这样做

Int("\(Int32value)")
Run Code Online (Sandbox Code Playgroud)

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