スレッド1EXC_BAD_ACCESS(code = 1、address =)によって引き起こされたクラッシュレコードについて



About Crash Record Caused Thread 1 Exc_bad_access Code 1



はじめに:最初から現在まで、スレッド1:EXC_BAD_ACCESS(code = 1、address =)のクラッシュが多数発生しました。これは、特定のクラッシュの場所を見つけるのが簡単ではないため、デバッグが一般的なものよりも複雑であるためです。クラッシュ状況。したがって、スレッド1:EXC_BAD_ACCESS(他のさまざまなクラッシュ状況を含む)によって引き起こされたクラッシュを記録し、コードを書くときの参照を容易にし、同じ問題に遭遇した友人を助けるために、インターフェイスを残す予定です。


なぜ報告されるのでしょうか:スレッド1:EXC_BAD_ACCESS?



'スレッド1:EXC_BAD_ACCESS'の発生は、通常、メモリリークが原因で発生します。これは、オブジェクトにメッセージを送信する必要がある場合に発生する可能性がありますが、オブジェクトは事前にリリースされていますが、コンパイラが他の場所にクラッシュして検出できないことがよくあります。今回は、コードと特定のクラッシュシナリオに従ってデバッグする必要があります。

tableViewを含むインターフェイスでpopToRootViewControllerメソッドを実行すると、プログラムがクラッシュし、デバッグ後にプロンプ​​トが表示されます。



“numberOfSectionsInTableView:]: message sent to deallocated instance” Copy code

分析は、tableViewのプロキシメソッドが実行され、例外がスローされることを示しています。

解決策:popToRootViewControllerメソッドを実行する前に、tableViewプロキシを空のままにします。

tableView.delegate = nil tableView.dataSource = nil [self.navigationController popToRootViewControllerAnimated:NO] Copy code

その後、問題が解決したことがわかりました。



転載:https://juejin.im/post/5a31d4ce5188256de205e568