2009-07-09 8 views
1

私のiPhoneアプリが予期せずクラッシュし、クラッシュログを見て、私のコードが何か問題を起こしているとは言えません。私がスタックに入るのは、それが自己のフレームワークを呼び出すことだけです。iphoneクラッシュログのヘルプが必要です。周囲の専門家?

助けが必要ですか?お願いします!

これは(というよりも、ここですべてをコピー&ペースト) http://www.megaupload.com/?d=CTWWNUN1

おかげでクラッシュログへのリンクです!

答えて

2

Objective-Cメッセージの受け渡しを処理する関数​​にクラッシュしているようです。これは、多くの場合、あなたは2つのうちのいずれかをやっているサインです:

  1. あなたがどこかのメモリ管理の問題を持っている - あなたはすでにリリースされていたオブジェクトのセレクタを呼び出そうとしている、あなたはoverreleasingしていますオブジェクト、またはそれに類するもの。
  2. フレームワークでスレッドセーフではありません。これは、UIKit(iPhoneが使用するほとんどのUI *要素)では特に難しい場合があります。ここでは、メインスレッド以外のスレッドから画面を更新することはできません。

オブジェクトの割り当てとリークをチェックし、スレッドの安全性を適切に尊重しているかどうかを再確認してください。

+0

驚くべき答え!どうもありがとう!私はいくつかのものを試してみます。 私はそれがUIKitのスレッドセーフと関係があると確信しています。この方法やベストプラクティスがUIKitを使用する際にスレッドセーフであるのを防ぐ方法に関するアイデアはありますか? 例:[someUITableView reloadData]を実行すると、メインスレッドによって確実に実行されます。 – nico

+0

かなり。アイデアは、メインスレッド以外の場所からのアニメーション(テーブルビューでは、データの再読み込み、行/セクションの挿入/削除を意味する)を引き起こすものを呼び出すことやコミットしないことです。あなたのアプリがシングルスレッドの場合、心配はありません。それ以外の場合は、performSelectorOnMainThread:メソッドを使用します。 – Tim

関連する問題