我在数组中有图像,但它返回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);
}
第一次单击按钮图像显示但第二次不显示图像并返回NULL值..给出我们的代码中适用的任何建议和源代码。
答案 0 :(得分: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开发人员)所以我怀疑这是一个打包问题。
答案 1 :(得分:0)
使用此方法和currentImage = 0:
-(IBAction)Next
{
if(currentImage>=[images count])
{
currentImage=0;
}
UIImage *img=[images objectAtIndex:currentImage];
[animalphoto setImage:img];
NSLog(@"print:%@",currentImage);
currentImage++;
}
答案 2 :(得分:0)
您的代码完全正确,除了您打印currentImage,因为currentImage是整数类型,但您在NSLog中提到了“%@
”字符串类型。这就是它显示错误的原因。您只需将其更改为
NSLog(@"print:%d",currentImage);
我认为这会对你有所帮助。