20

私のアプリでは、複数のメモリ リークが発生しています。オブジェクトは Malloc 48 バイトで、常に責任のある呼び出し元 strdup から発生します。オブジェクトの履歴は、Malloced であることのみを示し、その他の保持または解放はありません。スタック トレースに私のコードが表示されません。私が選ぶことができる唯一の関連性は次のとおりです。

  10 UIKit _UIGestureRecognizerSendActions
   9 UIKit -[UIScrollView handlePan:]
   8 UIKit -[UIScrollView _endPanWithEvent:]
   7 UIKit -[UIScrollView(Static) _startTimer:]
   6 CoreFoundation CFNotificationCenterAddObserver
   5 CoreFoundation _CFXNotificationRegisterObserver
   4 libnotify.dylib notify_register_dispatch
   3 libnotify.dylib notify_register_mach_port
   2 libnotify.dylib token_table_add
   1 libsystem_c.dylib strdup
   0 libsystem_c.dylib malloc

マップ ビューをスクロールしているときに発生するようですが、スタック内でコードが参照されていないため、どうすればよいかわかりません。このリークの診断はどのように進めればよいですか?

さらに情報が必要な場合は、お知らせください。

よろしく、ニック

4

4 に答える 4

11

それが「わずか」48バイトで、すべての証拠がシステムフレームワークのフレームを指している場合(つまり、割り当てがコードに公開されることはありません)、数万の「それら」がない場合、私は(a)心配しませんそれについては多すぎますが、(b) http://bugreport.apple.com/からすぐにバグを報告します。

アプリケーションのバイナリと、問題の再現方法に関する指示を添付してください。

于 2012-03-26T21:49:53.847 に答える
0

performselectorinbackground が原因である可能性があります。@autoreleasepool{} ブロック内で呼び出します

于 2012-12-06T18:51:43.897 に答える
0

これが実際に再発する問題であり、あなただけの問題ではないことを確認するためです. これは、テーブルのスクロールと UIScrollView で発生することがわかりました。シミュレーターでテストし、iPad でリリース バージョンをプロファイリングしました。5.1 ではよくある問題のようですが、まだ修正されたという話は聞いていません。そして、スクロールごとに48バイトが問題になる可能性があることに同意します。

于 2012-08-31T15:21:46.080 に答える