0

有人可以帮我写下面的代码吗?在这个循环中随机获取 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];

    }
}

顺便说一句,我在网上阅读了一些帖子,有人告诉我按照以下方式进行操作可以解决问题。我不确定这一点,当这个对象仍在其范围内时,为什么需要保留一个自动释放对象。更重要的是我不应该在某处释放保留对象吗?否则会导致内存泄漏。

代替

 t.text=[NSString stringWithFormat:@"%i",j*row+i];

和:

 NSString * temps=[NSString stringWithFormat:@"%i",j*row+i ];
[temps retain];
 t.text=temps;      
4

2 回答 2

0

i have tested it in my device and it is not crashing .

i have added 't' in self.view , i think there may be a problem with myView

于 2012-03-23T06:15:58.850 回答
0

此错误是因为您使用的是之前发布的对象。尝试设置这些设置:在此处输入图像描述 它们在 Project >> Edit Scheme >> Arguments

然后将控制台输出放在这里。

于 2012-03-23T07:33:59.390 回答