2

配列に画像がありますが、NULLを返します

私はこのコードを使用しました

- (void)viewDidLoad
{
    [super viewDidLoad];
    images= [[NSArray arrayWithObjects:   
                        [UIImage imageNamed:@"1.png"],
                        [UIImage imageNamed:@"2.png"],
                        [UIImage imageNamed:@"3.png"],
                        [UIImage imageNamed:@"4.png"],
                        nil] retain];  
}
-(IBAction)Next
{
    currentImage++;
    if(currentImage >= [images count])
    {
        currentImage=0;
    }

    UIImage *img=[images objectAtIndex:currentImage];
    [animalphoto setImage:img];
    NSLog(@"print:%@",currentImage);
}

1回目はクリックボタンの画像が表示されますが、2回目は画像が表示されず、NULL値を返します。コードに適用される提案とソースコードを指定してください。

4

3 に答える 3

0

メソッドに検証コードを追加viewDidLoadして、画像が正しく読み込まれていることを確認します。

- (void)viewDidLoad
{
    [super viewDidLoad];
    images= [[NSArray arrayWithObjects:   
                        [UIImage imageNamed:@"1.png"],
                        [UIImage imageNamed:@"2.png"],
                        [UIImage imageNamed:@"3.png"],
                        [UIImage imageNamed:@"4.png"],
                        nil] retain];  
    NSAssert([images count] == 4, @"Failed to load one or more images");
}

ただし、IBActionメソッドにはsenderパラメーターが必要ですよね?

-(IBAction)Next:(id)sender
{
    currentImage = (currentImage + 1) % [images count];
    NSLog(@"currentImage=%d",currentImage);
    UIImage *img=[images objectAtIndex:currentImage];
    [animalphoto setImage:img];
}

あなたのコードは私には問題ないように見えますが (私は Mac 開発者です)、パッケージングの問題であると思われます。

于 2012-07-06T10:56:40.547 に答える
0

このメソッドと currentImage = 0 を使用します。

 -(IBAction)Next
{

  if(currentImage>=[images count])
  {
    currentImage=0;
  }

UIImage *img=[images objectAtIndex:currentImage];
[animalphoto setImage:img];
NSLog(@"print:%@",currentImage);
currentImage++;

}
于 2012-07-06T10:58:04.383 に答える
0

%@currentImage は整数型ですが、NSLog で" " 文字列型について言及したため、currentImage を印刷することを除いて、コードはあなたが書いたものとまったく同じです。そのため、エラーが表示されます。それを次のように変更するだけです

NSLog(@"print:%d",currentImage);

お役に立てると思います。

于 2012-07-06T11:49:31.860 に答える