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!)
}
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
}
Suis-je en train de manquer quelque chose ou n'est-ce pas ridiculement facile?
let number1: Int32 = 10
let number2 = Int(number1)
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.
Parfois "?" rendre les choses tordues, en ajoutant "!" en Int32, puis le convertir en travaux int
let number1 = someInt32!
let number2 = Int(number1)