web-dev-qa-db-ja.com

EXC_BAD_access code = 2アドレス0x8

私が取り組んでいるアプリがあり、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に移動して、ゾンビについて何かを読んで有効にしました。しかし、それでも私は何も役に立たなかった。

ポインタはありますか?

16
hossein1448

私はVinzzzによって与えられたヒントを拡張したいと思いますが、少し異なります(例外はシンボリックブレークポイントではありません)。

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

15
Faisal Memon

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

0
Tommie C.

私のユーザーモデルクラスには、次のように宣言した追加のオブジェクトがあるため、このエラーも発生しました

var image = UIImage() 

モデルクラスから外したタスクには使用しませんでした。アプリがクラッシュしなかったので、モデルクラスをチェックしました。

0
Akbar