0

ボタンを押すとランダムな画像が表示されるアプリを作っています。実行してもエラーは発生しませんが、ボタンをクリックするとアプリがフリーズし、xcode では、このコードの最後に「スレッド 1: ブレークポイント 1.1」と表示されます。

-(void)changeLabel{

    progressView.progress += 0.15;

    if (progressView.progress == 1) {

        label.hidden = YES;

        progressView.hidden = YES;

        [timer invalidate];

        imagenesTest.hidden = NO;


         int randomNumber = arc4random() % 4;

        switch (randomNumber) {

            case 0:

                imagenesTest.image = [UIImage imageNamed:@"image1.png"];

                break;
            case 1:

                imagenesTest.image = [UIImage imageNamed:@"image2.png"];

                break;
            case 2:

                imagenesTest.image = [UIImage imageNamed:@"image3.png"];
                break;

            case 3:

                imagenesTest.image = [UIImage imageNamed:@"image4.png"];
         default:
                break;
}
}
}

ボタンを押すと、進行状況バーがアクティブになり、ランダムな画像が配置されるはずです。プログレスバーが機能し始める前にエラーが発生します。ボタンのコードは次のとおりです。

- (IBAction)scan:(id)sender {



    label.hidden = NO;

    imagenesTest.hidden = YES;



    progressView.hidden = NO;


    progressView.progress = 0;



    timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(changeLabel) userInfo:nil repeats:YES];



}

スレッドをクリックすると、これが強調表示されます

0x94feb6:  jmp    0x3ef05 
                  ; -[UIWindow _setRotatableClient:toOrientation:updateStatusBar:duration:force:isRotating:] + 4724

コードに何か問題がありますか? うまく説明できていなかったら申し訳ありません。数か月前にプログラミングを始めました。

ありがとう、エミリオ

4

1 に答える 1

2

これがコンソールに表示されるすべての情報である場合、これはエラー メッセージではなく、ブレークポイントが追加されたことを意味します。コードの横にガターラインが表示されます。それを押すと、これらの青い矢印であるブレークポイントを追加できます。ここに画像があります:

したがって、ブレークポイントの選択を解除するには、ブレークポイントをクリックするか、右クリックして Delete キーを押します。

また、ブレークポイントを無効にするには、command+Y を押すか、上部の停止ボタン、スキーム バー、ビルド ステータス バーの近くにあるブレークポイント選択ボタンを押します。

この最近の同様の質問に対する私の回答を確認してください: iPhone app simple calculator - Objective c error

アップデート:

NSLog画像が有効で、そのメソッドが呼び出されているかどうかを確認するものを入れることができますか? あなたの結果を教えてください!

NSLog基本的にデバッグコンソールにログインしています。したがってNSLog(@"test");、メソッドに追加し、コンソールに出力された場合、メソッドが呼び出されたことがわかります

ifまた、次のようなステートメントを入れることもできます

if (image) {
NSLog(@"image is valid");
}

そのステートメントの条件は、imageがゼロ以外/有効/初期化されている場合にのみ発生します。したがって

画像は有効です

デバッグコンソールに出力する必要があります

于 2012-05-14T06:48:10.077 に答える