5

私はiPhoneアプリを持っています。元気に走りそうです。プロビジョニングされた iPhone に Xcode に接続してアプリを実行すると、オーガナイザー ウィンドウのコンソール ログに、ホーム キーでアプリを終了すると、常にセグメンテーション エラーが表示されます。

他の誰かがこれを見たことがありますか? 問題が何であるかについての考えはありますか? スレッドを使用してバックラウンドで Web ページを読み込みますが、終了するときにスレッドを停止します。

私のアプリはいくつかの永続的な情報を保存します。ビルドおよび分析機能を使用すると、2 つの潜在的なメモリ リークが発生しますが、いずれの場合も、オブジェクトを割り当てて配列に保持しています。

アイデアはありますか、それともこれは正常ですか?

4

4 に答える 4

7

NSZombieEnabled でアプリケーションを実行してみてください。これにより、オブジェクトを解放しすぎているかどうかがわかります。ゾンビを有効にするには、次の手順を実行します。

  1. [Project] > [Edit Active Executable] を選択して、実行可能ファイルの情報ウィンドウを開きます。
  2. [引数] をクリックします。
  3. 「環境に設定する変数」欄の追加(+)ボタンをクリックします。
  4. [名前] 列に NSZombieEnabled と入力し、[値] 列に YES と入力します。
  5. NSZombieEnabled エントリのチェックマークが選択されていることを確認します。
于 2009-12-05T17:10:43.413 に答える
0

Perhaps you are releasing some object more times than its retain count. Comment out -release calls in your dealloc methods (or elsewhere) until you find the culprit.

Then uncomment-out that call and look elsewhere in your code where you are trying to over-release that object.

If you are using convenience methods, for example, (e.g. [NSString stringWithFormat:@"..."]) as opposed to alloc-init methods (e.g. [[NSString alloc] initWithFormat:@"..."]) the resulting convenience object is autoreleased and should not be manually released.

于 2009-12-04T22:30:06.730 に答える
0

私の問題は、cydia の uididfaker と locationholic でした。それらをアンインストールした後、iPhone で xcode を実行しても問題ありませんでした。

于 2012-09-25T07:05:20.153 に答える
0

終了時に、アプリケーションがオブジェクトを過剰に解放する可能性があります。オブジェクトを解放する前に各オブジェクトをダンプするか、dealloc メソッドでデバッグを実行してください。

于 2009-12-04T22:08:46.020 に答える