我想在我的应用中添加一个简单的图片动画,但它没有显示。我得到了这个黄色错误,并且说出了"本地宣布'图像'隐藏实例变量"
在以下地方: [ images addObject:[UIImage imageNamed:[imageNames objectAtIndex:i]]]; }
// Normal Animation
UIImageView *animationImageView = [[UIImageView alloc] initWithFrame:CGRectMake(60, 95, 86, 193)];
animationImageView.animationImages = **images**;
我的代码:
- (void)viewDidLoad
{
[super viewDidLoad];
// Load images
NSArray *imageNames = @[@"1.png", @"2.png", @"3.png", @"4.png",
@"5.png", @"6.png"];
NSMutableArray *images = [[NSMutableArray alloc] init];
for (int i = 0; i < imageNames.count; i++) {
[images addObject:[UIImage imageNamed:[imageNames objectAtIndex:i]]];
}
// Normal Animation
UIImageView *animationImageView = [[UIImageView alloc] initWithFrame:CGRectMake(60, 95, 86, 193)];
animationImageView.animationImages = images;
animationImageView.animationDuration = 0.5;
[self.view addSubview:animationImageView];
[animationImageView startAnimating];
}
答案 0 :(得分:1)
警告意味着声明一个局部变量
NSMutableArray *images = [[NSMutableArray alloc] init];
// ^^^^^^
使用您在类声明中用于实例变量的名称。实例变量的名称在类声明后以花括号列出:
@interface MyController : UIViewController {
NSMutableArray *images; // <<== The "competing" declaration
}
...
@end
您可以重命名这两个变量中的一个来解决问题,例如:
NSMutableArray *imageArray = [[NSMutableArray alloc] init];
另一种可能性是摆脱其中一个声明。确保您需要本地变量和实例变量。如果其中一个足够,删除另一个也将解决问题。