誰かが下のコードで私を助けることができますか?このループでは、EXC_BAD_ACCESSをランダムに取得します。私は何か[NSString stringWithFormat:....]に間違っていると推測しますが、理由を理解できず、修正する方法がわからないのです。どうもありがとうございました。目的コードの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];
}
}
私はいくつかのポストをオンラインで読んで、私は下の方法で問題を解決できると言われました。私はこれについてはわかりません、なぜこのオブジェクトがまだそのスコープにあるときオートレリースオブジェクトを保持する必要があります。そして、もっと重要なことは、私はどこかに保持オブジェクトをリリースすべきではありませんか?それ以外の場合は、メモリが漏れます。
で
t.text=[NSString stringWithFormat:@"%i",j*row+i];
を置き換える:
NSString * temps=[NSString stringWithFormat:@"%i",j*row+i ];
[temps retain];
t.text=temps;
どこがちょうどクラッシュしていますか?クラッシュログがなければ誰でも答えを伝えることが難しいでしょう。 – Ilanchezhian
その狂ったdouble forループは、それに関係しているかもしれません。 – CodaFi
このような「クレイジー」の二重ループは数万のアプリで使用されています。列と行を含む何かをすれば、実際はかなり標準的です。 m) –