web-dev-qa-db-fra.com

Comment puis-je convertir Int32 en Int dans Swift?

Cela devrait être facile mais je ne trouve que la conversion inverse. Comment puis-je convertir Int32 en Int dans Swift? A moins que le problème ne soit différent?

J'ai une valeur stockée dans Core Data et je veux la renvoyer en tant qu'int.

Voici le code que j'utilise, qui ne fonctionne pas:

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

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

L'erreur est la vôtre? après valueForKey.

L'initialiseur int n'accepte pas les options.

En faisant myUnit.valueForKey(“theNUMBER”)?.intValue! vous donne une valeur optionnelle et le! à la fin n'aide pas.

Remplacez simplement par ceci:

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

Mais vous pouvez également faire comme ça si vous voulez qu'il soit à sécurité intégrée:

return myUnit.valueForKey(“theNUMBER”)?.integerValue ?? 0

Et pour raccourcir votre fonction, vous pouvez le faire:

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

    return myUnit.valueForKey("theNUMBER")?.integerValue ?? 0
}
8
Arbitur

Suis-je en train de manquer quelque chose ou n'est-ce pas ridiculement facile?

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

Swift 4.0 produisant "Impossible d'appeler l'initialiseur pour le type 'Int' avec une liste d'arguments de type '(() -> Int32)"

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

Faites simplement ceci

Int("\(Int32value)")

Je n'arrive pas à comprendre pourquoi Swift rend les choses difficiles.

2
Aaban Tariq Murtaza

Parfois "?" rendre les choses tordues, en ajoutant "!" en Int32, puis le convertir en travaux int

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