web-dev-qa-db-ja.com

main.mでエラーが発生してロード中にアプリがクラッシュする

誤って削除してオーガナイザーで管理したアプリを復元しようとしていますが、シミュレーターまたはiPhoneで実行しようとすると、main.mファイルにエラーが表示されてクラッシュします。

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

「returnUIApplicationMain(argc、argv、nil、NSStringFromClass([AppDelegate class]));」でエラーが発生します。 SIGABRTエラーのあるファイルのセクション。 ARCをオンにしてXcode4.2を使用しています。私はそれをios4.3とios5.0でテストしています。アプリは以前は機能していましたが、実際には現在アプリストアにあります。何でも助けになります

11
cory ginsberg

デバッガーを見ると、おそらくエラーの原因がわかります。これは、メモリ不足(一度に画面に表示されるアイテムが多すぎる)が原因で以前に発生しました。いずれにせよ、エラーの原因についてターゲットデバッガーを調べてください。

8
DGund

通常、同様のエラーが発生するのは、InterfaceBuilderに壊れたリンクがあるためです。 IBOutletの名前を変更して、再度接続するのを忘れた可能性があります。

7
tomDev

ストーリーボードを使用している場合は、コードにもう存在しない重複する参照アウトレットまたは参照アウトレットを接続していないことを確認してください。つまり、View Controllerのボタンからコードにドラッグした後、プロパティまたはメソッドがまったく変更された場合、このエラーが発生する可能性があります。

enter image description here

5
DanWebster

私に起こり、デバッガーを調べたところ、アクションに付けた名前が記載されていましたが、viewController .hと.mの両方を作成した後で削除したため、何らかの理由で、別の名前で作成された古いアクションがまだどこかに残っていました...コードをコピーして、新しいプログラムに貼り付けました。もちろん、それは非常に小さなワンビューアプリだったので簡単でした...

2
Pattie Pants

次のビルド設定がない場合、これが発生するのを以前に見ました。 OTHER_LDFLAGS = -ObjC -all_load

これは、ターゲットのリンクの下にあります。

1
logancautrell

それは私に起こりました、そして私がしたすべては私の画像ビューの名前を変更し、後でそれを元に戻すことでした。しかし、削除した後、他の名前を切断するのを忘れました。ただし、Interface Builderから切断すると、機能しました。

1
user1427192

エラーメッセージが何であるかわからない-それは役に立ちます。しかし、AppDelegate.hをインポートしていますか?

1
FeifanZ

LLDPデバッガーでクラッシュしました。GDBに変更すると機能しました。

私もこの問題で立ち往生しましたが、常に1/2の起動だけではありません。コンソールにエラーはまったくありません。シグナルSIGARBTだけです。私のAppDelegateはdidFinishLaunchingWithOptionsにも行きませんでした。デバッガーをGDBに戻すと([スキームの編集…]>([情報]タブ)[デバッガー]> [LLDB])、問題が解決しました。

1
Flavien Volken

これを修正するには、mainstoryboard、つまりInterface Builderをクリックし、[File Inspector]タブを選択して、[Useautolayout]のチェックを外します。または、自動レイアウトがどうしても必要な場合は、iOS 6.0以降のみのデバイスをターゲットにして、最小ターゲットを変更することもできます。この問題は、xcodeのバージョンとからの学習プログラムのソースの不一致が原因で発生します。

0
Maverick10