0

私はiOSアプリを正常に完全に開発してきましたが、突然デバッガーを起動すると、大量のマシンコードが表示され、ここで停止します:

0x2c70bb:  popl   %ebp
0x2c670bc:  ret

ログに出力がありません。ゾンビやリークを実行すると、アプリは正常に動作しますが、シミュレーターを使用するだけでは何も得られません。アプリデリゲートのコードの最初の行にブレークポインターを配置しても、ヒットしません。

任意のヒント?これが発生する前に、コードを以前に機能していたコードに戻しましたが、同じことを行います。私は約 2 年間 iOS を開発してきましたが、これは初めてのことです。

解決策を探しましたが、何も見つかりませんでした。

4

3 に答える 3

0

アプリ デリゲートがヒットしていない場合、main.m の autorelease プール ステートメント内でクラッシュします。

完全なスタック トレースがないと、デバッグが困難になります。次のことをお勧めします。

  • メインウィンドウとルートxibがすべて問題ないことを確認してください
  • アプリデリゲートから基本以外のすべてを取り除く

また、main.m ファイル内には、次のようなものが表示されます。

UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));

4 番目の引数は delegateClassName であり、Apple Docsは次のように述べています。

delegateClassName
アプリケーション デリゲートのインスタンス化元のクラスの名前。principalClassName が UIApplication のサブクラスを指定する場合、サブクラスをデリゲートとして指定できます。サブクラス インスタンスは、アプリケーション デリゲート メッセージを受け取ります。アプリケーションのメイン nib ファイルからデリゲート オブジェクトをロードする場合は、nil を指定します。

したがって、デリゲート クラス名がアプリケーションのメイン xib またはデリゲートのいずれかに設定されていることを再確認します。まだ存在しない場合は、明示的に追加することをお勧めします。

于 2013-04-17T23:21:20.393 に答える
0

さて、これは最も奇妙なことです。私は問題を理解しましたが、なぜこれが起こるのか正確にはわかりません。

実行時の設定情報を保存するために使用するシングルトン クラスがあります。メインのシングルトン クラスに割り当てる特定の設定を持つクラスがあります。

特定の設定クラス内には、約 15 個のプロパティがあります。15 を超えるプロパティを追加すると、クラッシュが発生します。クラスに 16 番目のプロパティを追加すると、起動時にアプリがクラッシュし、main.m のコードに到達することさえありません。

これは非常に奇妙で、説明する方法がありません。メモリの問題だとしか思えませんが、真剣に、プロパティは 15 個しかありません。

1 int 12 NSStrings 2 NSMUtableArrays それぞれに数レコードしかない

どうしてこうなったのかわかる方がいましたら教えてください...

于 2013-04-19T19:39:34.730 に答える