cari

Rumah  >  Soal Jawab  >  teks badan

iOS: Rujukan penuding nol apabila mengekod jenis enum bukan null?

Strukturnya kira-kira seperti ini Kelas A mengandungi tatasusunan kelas B, dan kelas B mengandungi pembolehubah jenis penghitungan C.
A dimulakan seperti yang ditunjukkan dalam rajah semasa memulakan 10 elemen B, kecuali tatasusunan B kelas A tidak diubah suai Walau bagaimanapun, apabila pengekodan s dalam B, (penghitungan C ialah Status), nilai s boleh dicetak dengan baik, tetapi apabila pengekodan (s) Kemudian ralat dilaporkan (saya meletakkan titik putus pada kedua-dua mencetak dan mengekod ayat, dan yang terakhir ranap sebaik sahaja saya meninggalkannya)

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

Berikut ialah beberapa maklumat konsol:

Normal


* Menamatkan apl kerana pengecualian tidak ditangkap 'NSInvalidArgumentException', sebab: '-[_SwiftValue encodeWithCoder:]: pemilih tidak dikenali dihantar ke instance 0x608000444fb0'


Pada masa yang sama, terdapat Thread 1: signal SIGABRT di bahagian atas AppDelegate Selepas mencari di Google, nampaknya ia adalah kerana objek itu dikeluarkan awal, tetapi nilainya masih boleh dicetak sebelum pengekodan

.


Nilai boleh ditaip, tetapi nilainya bukan nilai yang dijangkakan Dalam gelung sebelum pengekodan, nilai jenis penghitungan bagi setiap B tatasusunan kelas A diganti satu demi satu (tidak menggantikan objek B secara langsung)

淡淡烟草味淡淡烟草味2780 hari yang lalu918

membalas semua(1)saya akan balas

  • 阿神

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

    Alasannya telah ditemui Sebabnya ialah kompilasi langsung jenis enumerasi akan menyebabkan pelbagai masalah menyelamatkan negara dan menjimatkan dan membaca nilai enumerasi

    balas
    0
  • Batalbalas