J'essaye de convertir mon projet en Swift 3.0 cependant j'ai deux messages d'erreur en travaillant avec NSNumber
et Integers
.Travailler avec les valeurs NSNumber & Integer dans Swift 3
ne peut pas affecter le type int taper NSNumber
pour
//item is a NSManaged object with a property called index of type NSNumber
var currentIndex = 0
for item in self.selectedObject.arrayOfItems {
item.index = currentIndex
currentIndex += 1
}
et même quand je change currentIndex
à un type NSNumber
je reçois l'erreur
Opérateur binaire '+ =' ne peut pas être appliqué pour taper 'NSNumber' et 'Int'
donc je créer une propriété appelée one
de type NSNumber
ajouter à currentIndex
mais l'erreur suivante;
opérateur binaire '+ =' ne peut pas être appliquée à deux opérandes NSNumber
& & la deuxième erreur que je reçois est
Aucun candidat '+' produire le type de résultat contextuel prévu Numéro NS
let num: Int = 210
let num2: Int = item.points.intValue
item.points = num + num2
Ici, j'essaie juste d'ajouter 210 à la valeur de la propriété points, item
est un NSManagedObject
.
Donc, fondamentalement, j'ai des problèmes pour obtenir ma tête en ajoutant des numéros aux propriétés de type NSNumber
. Je travaille avec NSNumber
parce que ce sont des propriétés de NSManagedObject
.
Quelqu'un peut-il m'aider? J'ai plus de 80 erreurs qui sont toutes une des erreurs ci-dessus mentionnées.
Merci
Vous pouvez trouver l'explication complète ici: [SE-0072] (https://github.com/apple/swift-evolution/blob/master/proposals/0072-eliminate-implicit-bridging-conversions.md) – gbitaudeau