2011-09-12 10 views
0

私はこれについて少し助けを使うことができました。 deallocのreleaseステートメントをコメントアウトすることで、クラッシュソースをNSMutableArray viewControllerに絞りました。EXC_BAD_ACCESSミステリー

コード:

main.mファイルで
NSMutableArray *controllers = [[NSMutableArray alloc] init]; 
for (NSInteger i = 0; i < self.numSlides; i++) { 
    [controllers addObject:[NSNull null]]; 
} 

self.viewControllers = controllers; 
[controllers release]; 

// Later on in dealloc: 
[viewControllers release], viewControllers = nil; 

[INT RETVAL = UIApplicationMain(ARGC、ARGV、ゼロ、ゼロ)。 ]私たちは得ます: プログラム受信信号: "EXC_BAD_ACCESS"

私はviewControllerのリリースをコメントアウトするとき - >クラッシュはしませんがメモリリークです。

あなたはそこにいますか?オビ=ワン - 私たちの最後の希望です。

ご協力いただきありがとうございます。

答えて

0

投稿したコードは正常です。それ以外の部分は見ずに、私はあなたのviewControllersプロパティがretainではなくassignと宣言されていると思います。そうでない場合は、スタティック・アナライザ(Product> AnalyzeまたはCmd-Shift-B)を実行してみてください。それは通常その種の問題を捉えることができます。

+0

ありがとうございましたノア - 投稿する前に無駄にしようとしました。それは良い考えだった。アナライザは何の答えも出さなかったが、Instrumentsは私にゾンビを与えた。 – robMontesinos

+0

[viewControllers release]、viewControllers = nilをコメントアウトすると、この行のInstrumentsでメモリリークが発生します。 DeallocでNSMutableArray * controllers = [[NSMutableArray alloc] init];これは非常に奇妙です - 私はこの問題について数多くの投稿を見ましたが、測定器にリークテストを渡す解決策はありません - スタティックアナライザはそれを拾いません。どんな助けもありがとう。 – robMontesinos