누군가 아래 코드를 도와 줄 수 있습니까? 무작위로 EXC_BAD_ACCESS를이 루프에서 가져옵니다. 뭔가 [NSString stringWithFormat : ....]과 함께 잘못된 것 같지만 왜 이해가 안되며 수정 방법을 모르겠습니다. 고맙습니다.객관적인 c의 EXC_BAD_ACCESS
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];
}
}
나는 온라인으로 일부 게시물을 읽었으며, 아래의 방법으로 문제를 해결할 수 있다고 말했습니다. 나는 이것에 대해 잘 모르겠다. 왜이 객체가 여전히 그 범위에있을 때 autorelease 객체를 유지할 필요가 있는가? 그리고 더 중요한 것은 내가 어딘가에 물건을 놓아서는 안된다는 것입니다. 그렇지 않으면 메모리가 누출됩니다.
NSString * temps=[NSString stringWithFormat:@"%i",j*row+i ];
[temps retain];
t.text=temps;
정확히 어디에서 충돌 했습니까? 충돌 로그가 없으면 누구나 대답을 말하는 것이 어려울 것입니다. – Ilanchezhian
그 미친 이중 for 루프는 그 일과 관련이있을 수 있습니다. – CodaFi
같은 "미친"이중 루프는 수만 개의 앱에서 사용됩니다. 열과 행이 관련된 작업을 수행하는 경우 실제로는 꽤 표준입니다. m) –