0

누군가 아래 코드를 도와 줄 수 있습니까? 무작위로 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;  
+1

정확히 어디에서 충돌 했습니까? 충돌 로그가 없으면 누구나 대답을 말하는 것이 어려울 것입니다. – Ilanchezhian

+0

그 미친 이중 for 루프는 그 일과 관련이있을 수 있습니다. – CodaFi

+1

같은 "미친"이중 루프는 수만 개의 앱에서 사용됩니다. 열과 행이 관련된 작업을 수행하는 경우 실제로는 꽤 표준입니다. m) –

답변

0

난 내 장치를 테스트 한이 충돌되지 않습니다

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

교체합니다. 내가 self.view에서 't'를 추가 한

, 내가 이전에 출시 된 객체와 함께 작동하기 때문에이 오류가 MYVIEW

+0

내가 말한 것과 마찬가지로이 충돌은 무작위로 발생합니다. 앱은 항상 [NSString stringWithFormat :] 다음에 정확하게 멈 춥니 다. 나는이 코드가 무엇이 잘못되었는지 알 수 없다. 그것은 아주 간단하고 표준입니다. 내 코드에 뭔가 다른 문제가있을 수 있습니다. 메모리 관리 문서를 한 번 더 읽고이를 다시 생각해보고 코드를 한 번 더 확인해 보겠습니다. 모든 의견을 주셔서 감사합니다. – Lynn

0

에 문제가있을 수 있습니다 생각합니다. 다음 설정을 시도하십시오 : enter image description here 이들은 Project >> Edit Scheme >> Arguments에 있습니다.

콘솔 출력을 여기에 위치시킵니다.

+0

조금 더 설명해 주시겠습니까? 이러한 설정을 구성하면 차이점은 무엇입니까? 예를 들어 NSZombieEnabled를 1로 설정하고 MallocStackLoggingNoCompact를 1로 설정합니다. – Lynn

+0

Xcode 4에있는 경우 좀비 체크 박스는 구성표 설정에 있습니다. 구성표 팝업에서 "구성표 편집"을 클릭하십시오.), 시트의 왼쪽에있는 "실행"행을 선택한 다음 진단 헤더를 선택한 다음 로깅에서 "좀비 개체 사용"확인란과 "Malloc 스택"을 클릭하십시오. 다음은 내가 한 위키 페이지입니다 (영원히 전!). 다음에 할 일에 대해 알아보십시오. http://www.cocoadev.com/index.pl?DebuggingAutorelease – davehayden

+0

비슷한 링크를 게시하고 싶었지만 러시아어로만 된 페이지를 발견했습니다 – Gargo