'int?' - Retrouvez les réponses et les commentaires concernant cette question" />
7
votes

SWIFTYJSON & SWIFT 3: impossible de convertir l'expression de retour de type 'int32? " pour revenir type> 'int?'

Nous mettons à niveau sur Swiftyjson Swift 3 avec Cocoapodes Config POD 'SWIFTYJSON', '3.1.0' CODE>.

Nous obtenons cette erreur: p>

/users/xxx/documents/ios/xxx/pods/swiftyjson/source/swiftyjson.swift:866:33: Impossible de convertir l'expression de retour du type 'int32?' Pour retourner le type 'Int?' P> blockQuote>

erreur est sur l'instruction de retour dans SWIFTYJSON.SHIFT: P>

public var int: Int? {
    get {
        return self.number?.int32Value
    }
    set {
        if let newValue = newValue {
            self.object = NSNumber(value: newValue)
        } else {
            self.object = NSNull()
        }
    }
}


0 commentaires

4 Réponses :


4
votes

réalisa le Version prise en charge de SwiFtyjson est 3.0.0 et non 3.1.0. Utilisé 3.0.0 et le problème est parti.

POD 'SWIFTYJSON', '3.0.0'


1 commentaires

Avez-vous exécuté la commande POD UPDATE et laissez-la terminer? Et faire un nettoyage complet et construit?



8
votes

Je viens de remplacer une ligne de code avec le code ci-dessous. SIMPLE

public var int: Int? {
        get {
            return self.number?.intValue
        }
        set {
            if let newValue = newValue {
                self.object = NSNumber(value: newValue)
            } else {
                self.object = NSNull()
            }
        }
    }


2 commentaires

Il est valide mais notre objectif n'est pas de modifier la source de la bibliothèque cliente.


Oui. je suis d'accord avec toi. Nous ne devrions pas la modifier. Mais si nous voulons que la solution temporelle élimine ERRO, nous pouvons utiliser le code ci-dessus. À l'avenir, nous le supprimerons définitivement.



0
votes

Essayez simplement cela,

Mauvais: renvoyez Self.number? .Int32Value

Bien: retourne auto.number? .Intvalue

Raison: semble être plus générique dans la façon dont il peut retourner des entiers.


0 commentaires

0
votes

J'ai ajouté manuellement comme? Int code> Pour que cela fonctionne à nouveau:

public var int: Int? {
    get {
        return self.number?.int32Value as? Int
    }
    set {
        if let newValue = newValue {
            self.object = NSNumber(value: newValue)
        } else {
            self.object = NSNull()
        }
    }
}


0 commentaires