web-dev-qa-db-ja.com

SwiftでInt32をIntに変換するにはどうすればよいですか?

簡単なはずですが、逆変換しか見つけることができません。 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!)
 }
22
Michel

エラーはあなたですか? 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
}
8
Arbitur

私は何かを見逃していますか、これはばかげて簡単ではありませんか?

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

「 '(()-> Int32)型の引数リストで' Int '型の初期化子を呼び出すことはできません」を生成するSwift 4.0

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

単にこれを行う

Int("\(Int32value)")

Swiftが物事を難しくしている理由を理解できません。

2

時々 "?"物をねじって、「!」を追加しますInt32に変換してから、intに変換します

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