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
807

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
    À propos de nous Clause de non-responsabilité Sitemap
    Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!