【发布时间】:2010-07-28 10:39:02
【问题描述】:
我遇到了一个奇怪的问题。我有一个 for 循环,循环内有一个 switch 语句。 for 循环中的计数器是一个指向原始数组开头的指针,它会自增直到找到“终止符编号”。指向的数组用于构建视图,每个元素代表一个要放入视图的子视图。 代码如下:
for (self.composizione; *composizione>kFine; composizione++) {
int c=(int)*composizione;
NSLog(@"%d",c);
switch (c) {
case kForchettaPesce: case kForchettaNormale:
{
NSString *imagePath;
imagePath=[[NSString alloc]initWithFormat:@"%@/%d.png",[[NSBundle mainBundle]resourcePath],c];
UIImage *image=[[UIImage alloc]initWithContentsOfFile:imagePath];
[imagePath release];
NSLog(@"pippo");
UIImageView *imageView=[[UIImageView alloc]initWithFrame:CGRectMake(0, 0, image.size.width, image.size.height)];
imageView.image=image;
[image release];
[self.view addSubview:imageView];
[imageView release];
break;
}
default:
break;
}
NSLog(@"%d",(int)*composizione);
}
调试它我发现它工作得很好,直到它尝试添加子视图。它似乎停留在循环中,并且日志在无限循环中始终显示相同的数据。如果我删除 -addSubview 方法我没有问题,日志语句会显示我希望看到的内容。 我究竟做错了什么? 问候, 安德烈亚
【问题讨论】:
-
我不得不说我不知道为什么它不起作用。尝试创建自己的数组并添加到您创建的数组中的视图怎么样。在 for 循环完成后,将数组中的视图添加到超级视图。它可能会给我们一个线索。
-
顺便说一句,您可以考虑在您的代码中使用英语。其他人更容易理解。
-
谢谢 Ron 我已经指出了错误,我在 loadView 方法中使用它。我正在使用笔尖,所以我将其删除并复制到 viewDidLoad,现在一切正常。
标签: iphone c objective-c loops subview