0

私のアプリはシミュレーターで問題なく動作しますが、開発者ライセンスを取得したので、iPod Touch で実行しようとすると、xcode と表示されます。GBD: Program received signal: "SIGABRT".

ここで何が問題なのかを理解するにはどうすればよいですか? ビルド時に警告は表示されません。

編集:申し訳ありませんが、デバイスでアプリを実行するのはこれが初めてなので、ご容赦ください。オーガナイザー ウィンドウとデバッガーが、デバイスで何が起こっているかのログを表示していることに気付きました。これが問題です:

[UIApplication setStatusBarHidden:withAnimation:]: unrecognized selector sent to instance 0x1160e0

そして、それが参照しているコードは(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {

問題のあるコードは次のとおりです。

`if (interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight) {

    self.view = clockView;
    [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:NO];
    return YES;


}
if (interfaceOrientation == UIInterfaceOrientationPortrait) {

    self.view = homeView;

    [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:NO];

    return YES;
}
if (interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown) {

self.view = homeView; [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:NO];

    return YES;
}
else {
    return YES;
}

`

4

3 に答える 3

3

[UIApplication setStatusBarHidden:withAnimation:]: 認識されないセレクターがインスタンス 0x1160e0 に送信されました

メソッドがデバイスに存在しないようです。3.2で追加されました。iPod で実行されている iOS のバージョンはどれですか? また、2 番目のパラメーターの型が間違っています

それよりも低く、それをサポートしたい場合は、検討する必要があります

    if ([[UIApplication sharedApplication] respondsToSelector:@selector(setStatusBarHidden:withAnimation:)]) {
        [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone];
    } else {
        [[UIApplication sharedApplication] setStatusBarHidden:NO animated:NO];
    }
于 2011-01-27T12:40:01.390 に答える
1

コードの最初にブレークポイントを挿入し、デバッグ モードで実行します。デバッガーを使用してコードを 1 行ずつ実行し、SIGABRT が発生する前にコードがどの程度到達するかを確認します。

しかし、iPod touch をプロビジョニング デバイスとして設定しましたか?

ああ、何か他のものを見つけました。withAnimation パラメータに正しいデータを送信しているかどうかわかりません。ドキュメントを確認してください。

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:NO]; 

次のようになります。

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide]; 
于 2011-01-27T11:51:30.773 に答える
0

アプリをデバッグ モードで実行すると、コンソールを監視できます ([実行] -> [コンソール])。ほとんどのクラッシュでは、正しい方向を示す何らかのエラー メッセージが表示されます。また、デバッグ ビューでは、アプリがクラッシュした瞬間のスタックを確認できます (Xcode のデフォルト レイアウトのデバッグ ビューの左上)。Xcode は、コードに属するスタック内のメソッドを暗いテキストで強調表示します。それらが最初の容疑者です。

于 2011-01-27T11:50:45.217 に答える