错误:可能无法初始化可变大小的对象。但为什么?

时间:2011-07-01 16:29:23

标签: iphone memory-management

enter code hereint quantity = [array count];
int i;
for (i=0; i<quantity; i++) 
{
    NSString *imageName = [NSString stringWithFormat:@"Car_%@.jpg",  [[array objectAtIndex:i] objectForKey:@"CarName"]]   ];
    UIImage *img[i] = [UIImage imageNamed:imageName];
    UIImageView *imgView[i] = [[UIImageView alloc] initWithImage:img[i]];
    imgView[i].frame = CGRectMake(i*kWidth, 0, kWidth, kHeight);
    [scrollView addSubview:imgView[i]];
    [imgView[i] release];
}`enter code here`

错误:可能无法初始化可变大小的对象。但为什么呢?

2 个答案:

答案 0 :(得分:2)

UIImage *img[i] = [UIImage imageNamed:imageName];

这声明了一个大小为i的C样式数组,并尝试使用UIImage实例对其进行初始化。这没有意义。你想做什么?你的其余代码在哪里?

编辑:

好的,我想我明白你在做什么。摆脱你拥有的所有地方[i]。在循环内部,你一次只处理一个项目,即使你不是,也不是你使用数组的方式。

答案 1 :(得分:1)

你可能想试试这个:

int i;
for (i=0; i<quantity; i++) 
{
    NSString *imageName = [NSString stringWithFormat:@"Car_%@.jpg",  [[array objectAtIndex:i] objectForKey:@"CarName"]]   ];
    UIImage *img = [UIImage imageNamed:imageName];
    UIImageView *imgView = [[UIImageView alloc] initWithImage:img];
    imgView.frame = CGRectMake(i*kWidth, 0, kWidth, kHeight);
    [scrollView addSubview:imgView];
    [imgView release];
}

您不需要使用img [i]来使用UIImageView填充滚动视图。