16

XCode 4.5 の iOS 6 で完全に動作する、私が取り組んできたアプリがありますが、iOS 7 で XCode 5 をダウンロードすると、このエラーが発生します。

スレッド 1: EXC_BAD_access code=2 アドレス 0x8

main.m で:

#import <UIKit/UIKit.h>
#import "TestAppDelegate.h"

int main(int argc, char *argv[])
{
    @autoreleasepool {
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([TestAppDelegate class]));
    }
}

iOS 6 SDK をダウンロードし、コードは iOS 6 SDK で完璧に動作しますyetが、iOS 7 ではこのエラーが発生し、理由がわかりません。これをデバッグしようとしましたが、クラッシュに関する情報が得られません。ゾンビについて何か読んで、Product->Edit Schema->Diagnostic->Enable Zombie Objectに移動して有効にしました。しかし、この後も何も役に立ちませんでした。

ポインタはありますか?

4

3 に答える 3

18

Vinzzz によって提供されたヒントを拡張したいと思いますが、わずかに異なります (シンボリックブレークポイントではない例外)。

ここでの問題は、プログラムが OS キャッチ例外 (不正なアクセス) で停止することです。iOS 例外につながるコード内の例外を確認するには、これよりも 1 ステップ前に進む必要があります。左側の Xcode 画面パネル セクション (Breakpoint Navigator) のブレークポイント タブに移動します。次に、パネルの下部に + 記号が表示されます。そこをクリックして、「例外ブレークポイント」を追加します。プログラムを再実行すると、問題が OS 環境に導入されようとしたときにブレークポイントが設定されるはずです。これにより、誰が、何が原因であるかについての情報が得られます。

于 2014-10-05T22:18:55.073 に答える
1

(lldb) プロンプトが表示されたら、続行ボタンを押してみてください。これにより、デバッガー コンソールの上部に根本的なエラー メッセージが表示される場合があります。太字のテキストの上部を探して、問題の原因となっている可能性のあるオブジェクトを確認します。通常、このタイプのエラーは、割り当てが解除されたオブジェクトにアクセスしようとしたことを示します。

于 2013-10-26T02:27:06.543 に答える