0

誰かが下のコードで私を助けることができますか?このループでは、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;  
+1

どこがちょうどクラッシュしていますか?クラッシュログがなければ誰でも答えを伝えることが難しいでしょう。 – Ilanchezhian

+0

その狂ったdouble forループは、それに関係しているかもしれません。 – CodaFi

+1

このような「クレイジー」の二重ループは数万のアプリで使用されています。列と行を含む何かをすれば、実際はかなり標準的です。 m) –

答えて

0

私は私のデバイスでそれをテストして、それがクラッシュしていません。

私はself.viewに「T」を追加した、私はあなたが以前に発売されたオブジェクトで動作しているため、このエラーがあるMYVIEW

+0

私が言ったように、このクラッシュはランダムに起こります。アプリは常に[NSString stringWithFormat:]の後に正確に停止しました。私は本当にこのコードの何が間違っているのか理解できません。それは非常に簡単で標準的です。私のコードに何か間違っているかもしれません。メモリ管理の記事をもう一度読んで、これについて考え、もう一度自分のコードをチェックします。すべてのあなたのコメントありがとう。 – Lynn

0

に問題があるかもしれないと思います。これらの設定を試してください:enter image description here これらはProject >> Edit Scheme >> Argumentsにあります

ここにコンソール出力を配置します。

+0

これについてもう少し詳しく説明できますか?これらの設定を行うと違いは何ですか?私はNSZombieEnabledをYESに、MallocStackLoggingNoCompactを1に設定することを意味します。 – Lynn

+0

Xcode 4の場合、ゾンビチェックボックスはスキーム設定にあります - スキームポップアップから「Edit Scheme」をクリックします。 )、シートの左側の「実行」行、診断ヘッダーを選択してから、「ゾンビオブジェクトを有効にする」チェックボックスと「ロギング」の下の「Malloc Stack」をクリックします。私が作ったwikiページは、あなたが次に何をするかについて(永遠に前に!)次のとおりです:http://www.cocoadev.com/index.pl?DebuggingAutorelease – davehayden

+0

私は同様のリンクを投稿したかったのですが、私はロシア語のページしか見つかりませんでした – Gargo

関連する問題