iOS : référence de pointeur nul lors de l'encodage d'un type d'énumération non nul ?
淡淡烟草味
淡淡烟草味 2017-05-31 10:36:30
0
1
907

La structure est à peu près comme ceci. La classe A contient un tableau de classe B et la classe B contient une variable de type énumération C.
A est initialisé comme indiqué sur la figure lors de l'initialisation de 10 éléments B, sauf que le tableau B dans. la classe A n'a pas été modifiée. Cependant, lors de l'encodage de s dans B, (l'énumération C est Status), la valeur de s peut être bien imprimée, mais lors de l'encodage de (s), une erreur a ensuite été signalée (j'ai mis des points d'arrêt sur les deux. imprimer et encoder des phrases, et cette dernière s'est écrasée dès que je l'ai quitté)

func encode(with aCoder: NSCoder) {
        print(status)
        aCoder.encode(status, forKey: "status")
    }

Voici quelques informations sur la console :

Normal


* Arrêt de l'application en raison d'une exception non interceptée 'NSInvalidArgumentException', raison : '-[_SwiftValue encodeWithCoder:] : sélecteur non reconnu envoyé à l'instance 0x608000444fb0'


En même temps, il y a le fil 1 : signal SIGABRT en haut d'AppDelegate, il semble que ce soit parce que l'objet a été publié tôt, mais la valeur peut toujours être imprimée avant l'encodage

.


La valeur peut être saisie, mais la valeur n'est pas la valeur attendue. Dans une boucle avant encodage, la valeur de type énumération de chaque B du tableau A classe B est remplacée une par une (ne remplaçant pas directement l'objet B)

淡淡烟草味
淡淡烟草味

répondre à tous(1)
阿神

La raison a été trouvée. La raison est que la compilation directe des types d'énumération entraînera divers problèmes. Curve enregistre et lit la valeur de l'énumération.

.
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal