iOS: Rujukan penuding nol apabila mengekod jenis enum bukan null?
淡淡烟草味
淡淡烟草味 2017-05-31 10:36:30
0
1
880

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)

淡淡烟草味
淡淡烟草味

membalas semua(1)
阿神

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

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan