有人可以帮我处理下面的代码吗?在此循环中随机获取EXC_BAD_ACCESS。我猜[NSString stringWithFormat:....]有问题,但不明白为什么,也不知道如何修复。非常感谢你。
for(int i=0;i<row;i++)
{
for(int j=0;j<col;j++)
{
CGRect tileFrame=CGRectMake(i*tileSize, j*tileSize, tileSize, tileSize );
UILabel * t=[[UILabel alloc]initWithFrame:tileFrame];
t.text=[NSString stringWithFormat:@"%i",j*row+i];
///If there is a crashing ,it always stop at here, right after the [NSString stringWithFormat:.....]
t.backgroundColor=[UIColor clearColor];
//NSString * temps=[NSString stringWithFormat:@"%i",j*row+i ];
//t.text=temps;
[myView addSubview:t];
[t release];
}
}
顺便说一下,我在线阅读了一些帖子,有人告诉我这样做可以解决问题。我不确定这一点,为什么需要在此对象仍在其范围内时保留自动释放对象。更重要的是我不应该在某处释放retain对象吗?否则会导致内存泄漏。
替换
t.text=[NSString stringWithFormat:@"%i",j*row+i];
使用:
NSString * temps=[NSString stringWithFormat:@"%i",j*row+i ];
[temps retain];
t.text=temps;
答案 0 :(得分:0)
我已经在我的设备上测试了它并没有崩溃。
我在self.view中添加了't',我认为myView可能存在问题
答案 1 :(得分:0)
此错误是因为您使用之前发布的对象。尝试设置这些设置: 它们位于Project&gt;&gt;编辑方案&gt;&gt;参数
然后将控制台输出放在这里。