Bagaimana cara membaca log kerusakan yang disimbolkan ios ini?

Apple menolak versi baru APP dan mengirimi saya kembali log kerusakan, sulit bagi saya untuk menemukan masalahnya meskipun log kerusakan telah disimbolkan dalam Xcode. Dari berikut ini, saya rasa ada yang salah pada fungsi getGameCenterScore di baris 246? Apakah ini menceritakan lebih banyak masalah?

BTW, sebelum memanggil fungsi GameCenterScore(), GKLocalPlayer.localPlayer().authenticated dicentang, tetapi jaringan tidak dicentang. Saya harus memikirkan masalahnya di sini. Ada saran?

Terima kasih.

Exception Type:  EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000001, 0x0000000100054ef4
Triggered by Thread:  0

Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   xoxo                              0x0000000100054ef4 xoxo.ViewController.(getGameCenterScore (xoxo.ViewController) -> () -> Swift.Int).(closure #1) (ViewController.swift:246)
1   xoxo                              0x00000001000546b0 partial apply forwarder for reabstraction thunk helper from @callee_owned (@in ([Swift.AnyObject]!, ObjectiveC.NSError!)) -> (@out ()) to @callee_owned (@owned [Swift.AnyObject]!, @owned ObjectiveC.NSError!) -> (@unowned ()) with unmangled suffix "315" (ViewController.swift:0)
2   xoxo                              0x0000000100055110 reabstraction thunk helper from @callee_owned (@owned [Swift.AnyObject]!, @owned ObjectiveC.NSError!) -> (@unowned ()) to @callee_unowned @objc_block (@unowned ObjectiveC.NSArray!, @unowned ObjectiveC.NSError!) -> (@unowned ()) (ViewController.swift:0)
3   GameCenterFoundation              0x000000018e9de3a0 0x18e964000 + 500640
4   libdispatch.dylib                 0x0000000197841990 0x197840000 + 6544
5   libdispatch.dylib                 0x0000000197841950 0x197840000 + 6480
6   libdispatch.dylib                 0x0000000197846208 0x197840000 + 25096
7   CoreFoundation                    0x0000000185a877f4 0x1859a8000 + 915444
8   CoreFoundation                    0x0000000185a8589c 0x1859a8000 + 907420
9   CoreFoundation                    0x00000001859b12d0 0x1859a8000 + 37584
10  GraphicsServices                  0x000000018f09f6f8 0x18f094000 + 46840
11  UIKit                             0x000000018a576fa8 0x18a500000 + 487336
12  xoxo                              0x00000001000636c0 main (AppDelegate.swift:12)
13  libdyld.dylib                     0x000000019786ea04 0x19786c000 + 10756

func getGameCenterScore(){
    var gameCenterScore = 0
    let leaderBoardRequest = GKLeaderboard()
    leaderBoardRequest.identifier = "XXXXXXXXXXXXX"

    leaderBoardRequest.loadScoresWithCompletionHandler { (scores, error) -> Void in
        if (error != nil) {
            println("Error: \(error!.localizedDescription)")
        } else if (scores != nil) {
            let localPlayerScore = leaderBoardRequest.localPlayerScore
            gameCenterScore = Int(localPlayerScore.value)

            if self.saveData.stringForKey("topScore") == nil {
                self.saveData.setValue(gameCenterScore, forKey: "topScore")
                self.topScoreLabel.text = "\(gameCenterScore)"
            }else{
                if gameCenterScore > self.saveData.integerForKey("topScore"){
                    self.saveData.setValue(gameCenterScore, forKey: "topScore")
                    self.topScoreLabel.text = "\(gameCenterScore)" // line 246
                }
            }

        }
    }
}

person jdleung    schedule 05.05.2015    source sumber
comment
Silakan posting kode untuk fungsi ini: getGameCenterScore.   -  person pteofil    schedule 05.05.2015
comment
@pteofil, fungsi diposting dan baris 246 ditandai. Terima kasih.   -  person jdleung    schedule 05.05.2015


Jawaban (1)


Baru saja mengalami hal yang sama. Penolakan biner untuk aplikasi yang saya unggah. Akhirnya diterima. Saya menemukan nomor baris seperti yang Anda lakukan. (Saya menggunakan textWrangler dan membandingkan teks yang disimbolkan dengan kerusakan aslinya. Dan hanya ada satu baris yang mungkin terjadi. Sama seperti 216 Anda.) Baris yang terdaftar sebagai swift:0 berada setelah baris penyebab kerusakan.

Untuk Mengatasi atau memberantas masalah: 1) Saya menemukan hantu dapat berlama-lama di kode Swift saya. Bersihkan dan bangun kembali. Coba pindahkan kodenya. 2) Perhatikan bahwa garis di mana kecelakaan tersebut terdaftar mungkin melenceng beberapa baris. Baris yang mereka daftarkan untuk aplikasi saya adalah sebuah komentar. Kesalahannya adalah kode di atas dan kode itu tampak oke. Saya menyelesaikannya dengan menulis ulang dengan cara yang berbeda. 3) Periksa kode Anda dengan cermat.

if gameCenterScore > self.saveData.integerForKey("topScore"){`enter code here`

Apakah ini akan mogok jika gameCenterScore == topScore Anda?

person Mountain Man    schedule 10.06.2016