Maison  >  Questions et réponses  >  le corps du texte

iOS : référence de pointeur nul lors de l'encodage d'un type d'énumération non nul ?

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)

淡淡烟草味淡淡烟草味2721 Il y a quelques jours862

répondre à tous(1)je répondrai

  • 阿神

    阿神2017-05-31 10:38:30

    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.

    .

    répondre
    0
  • Annulerrépondre