2012-01-31 7 views
0

私はXcode 4.2が新しく、プロジェクトが終わってからAppleが提供するインストゥルメントのいくつかを試してみると思いました。だから、私はリークを実行し、明らかに、それは直接アプリケーションの開始時に漏れが見つかりました。私が「リーク」セクションにあるオレンジ色の固体垂直バーを取得し、私が調べたときに、犯人であることが表示されます:Autoreleasepoolのメモリリーク?

int main(int argc, char *argv[]) 
    { 
     @autoreleasepool { 
//problem appears on the line below in Orange 
      return UIApplicationMain(argc, argv, nil, NSStringFromClass([TestProjectAppDelegate class])); 
     } 
    } 

私はこれに新たなんだので、私は問題が何であるか見当がつかない、それを解決する方法、または私が実際の問題を見つける場合でも!

(「ドレイン」のどこかに呼び出しがあると想定されていない?)

任意の助けいただければ幸いです。

EDITスクリーンショットのファイルへのリンク :リークのオプションペインでhttp://whoit.home.comcast.net/~whoit/combined.jpg (埋め込むには大きすぎる)

+0

インスツルメントの表示をドリルダウンしましたか? – Abizern

+0

はい、私はこれに新しいので、実際には私には何の意味もありません。 – wayneh

+0

残念ながら - 私はあなたの画面を見ることができないので - それは私にも何も意味しません。 – Abizern

答えて

2

クリックinvert call treeを。

し、可能な場合にも、多分あなたは、このビューのスクリーンショットを追加することができます。

Leaks

+0

これは既に行っていますが、私は何を見ているのか分かりません... – wayneh

+0

後ろにスクリーンショットリークでこれらのコールツリーを拡張しますか? – ZhangChn

+0

OK、スクリーンショットイメージのオリジナル投稿へのリンクを追加しました。ありがとう。 – wayneh

0

これで全体@autoreleasepoolブロック置き換え:あなたはまだ同じが表示された場合

NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 
int retVal = UIApplicationMain(argc, argv, nil, NSStringFromClass([TestProjectAppDelegate class])); 
[pool release]; 

return retVal; 

をリークが発生すると、コード内のどこか他の部分でオーバーリテンションの問題が発生し、このセクションは問題ではありません。 がまだ表示されていない場合は、この新しい言語構造に問題がある可能性があります。非常にありそうもありませんが、これは新しい構造ですので、確かにバグかもしれません。

+0

できません - 私はARCを使用しており、コンパイラはあなたのコードについて不平を言っています。 – wayneh

+0

@wayneh - ARCを使用している場合は、まあいいでしょう。リークツールが新しいARCシステムを認識するように完全に更新されておらず、誤ってリークを報告している可能性もあります。 – DougW