Pertanyaan Spesialisasi tanda tangan fungsi macet dengan cepat


Saya mendapatkan laporan kerusakan dari pengguna kami tetapi saya tidak memahami laporan kerusakan.

Ia mengatakan:

Ribony: function signature specialization <Arg[0] = Owned To Guaranteed and Exploded, Arg[1] = Owned To Guaranteed and Exploded, Arg[2] = Owned To Guaranteed and Exploded, Arg[3] = Exploded, Arg[4] = Owned To Guaranteed> of Ribony.ChatManager.sendMessage (Ribony.ChatManager)(Swift.String, to : Swift.String, anonClosed : Swift.String, toWeb : Swift.Int) -> () + 3608

enter image description here

Saya menggunakan cepat. Apa laporan ini? Saya sendMessage metode:

func sendMessage(message: String,to: String,anonClosed: String,toWeb: Int) {
        NSNotificationCenter.defaultCenter().postNotificationName(mySpecialNotificationKey, object: self,userInfo:["message":message])
        var sender=""
        var token=""
        var toSubstr=""
        if count(to) >= 5 {
            let rangeOfTo = Range(start: to.startIndex,
            end: advance(to.startIndex, 5))
            toSubstr = to.substringWithRange(rangeOfTo)
        }else{
            toSubstr=to
        }
        socket.emit("sendMessage","ok")
}

Bagaimana saya bisa menyelesaikannya?


6
2017-09-18 15:55


asal


Jawaban:


Anda perlu melihat apa sebenarnya pengecualian itu. Yang paling umum adalah "tak terduga ditemukan nihil saat membuka opsi Nilai Opsional" yang akan menunjukkan bahwa Anda melewati a String! untuk metode ini yang benar-benar nil. Tetapi Anda harus mulai dengan melihat pesan pengecualian, bukan hanya tumpukan macet.


2
2017-09-18 16:07



Diambil dari sini: https://forums.developer.apple.com/thread/6078

Pesan tersebut tampaknya berkorelasi dengan mengirimkan objek nihil ke fungsi cepat yang mengharapkan objek non-nil.

Jadi ubah tanda tangan fungsi Anda menjadi: func sendMessage(message: String?,to: String?,anonClosed: String?,toWeb: Int?) atau pastikan ia dipanggil dengan objek non-nil dari Objective C


1
2017-12-15 01:49