2012-03-18 9 views
15

私はメモリのための機器で私のアプリをプロファイリングするとき、それは次の関数でリークを示しリークARC を使用してアプリケーションを開発していますmain.mのリークを示し、私のコードのどこかに問題があることを示していますか? インスツルメンツは(Xcodeの4.3.1)

これはARCを使用している間、私はこれと同じ問題を抱えていたスタックトレース

0 libsystem_c.dylib malloc 
    1 libsystem_c.dylib strdup 
    2 libnotify_sim.dylib token_table_add 
    3 libnotify_sim.dylib notify_register_mach_port 
    4 libnotify_sim.dylib notify_register_dispatch 
    5 CoreFoundation _CFXNotificationRegisterObserver 
    6 CoreFoundation CFNotificationCenterAddObserver 
    7 UIKit -[UIScrollView(Static) _startTimer:] 
    8 UIKit -[UIScrollView _endPanWithEvent:] 
    9 UIKit -[UIScrollView handlePan:] 
    10 UIKit _UIGestureRecognizerSendActions 
    11 UIKit -[UIGestureRecognizer _updateGestureWithEvent:] 
    12 UIKit -[UIGestureRecognizer _delayedUpdateGesture] 
    13 UIKit ___UIGestureRecognizerUpdate_block_invoke_0541 



14 UIKit _UIGestureRecognizerApplyBlocksToArray 
    15 UIKit _UIGestureRecognizerUpdate 
    16 UIKit -[UIWindow _sendGesturesForEvent:] 
    17 UIKit -[UIWindow sendEvent:] 
    18 UIKit -[UIApplication sendEvent:] 
    19 UIKit _UIApplicationHandleEvent 
    20 GraphicsServices PurpleEventCallback 
    21 CoreFoundation __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ 
    22 CoreFoundation __CFRunLoopDoSource1 
    23 CoreFoundation __CFRunLoopRun 
    24 CoreFoundation CFRunLoopRunSpecific 
    25 CoreFoundation CFRunLoopRunInMode 
    26 GraphicsServices GSEventRunModal 
    27 GraphicsServices GSEventRun 
    28 UIKit UIApplicationMain 
    29 MyProject/main.m:16 
    30 MyProject start 
+0

特定のログとエラーコードがありますか? あなた自身があなた自身のコードの中にこの関数を書いていないので、=) –

+0

このリークエントリーは楽器の助けになりますか?私は私のアプリの2分の実行のためのこのような10のエントリーを得る:漏れたオブジェクト:Malloc 48バイト、責任あるライブラリ:libsystem_c.dylib責任あるフレーム:strdup。 –

+0

このmallocブロックのアドレスをクリックするとそこからスタックトレースが得られるはずです。 しかし、非常に正直なところ - 10x 48バイトのリークはこれにとどまるならば終わりの世界ではありません;) –

答えて

1

であり、それは、ビューコントローラ内のdealloc機能を有することによって引き起こされました。 dealloc関数(私の場合は何もしなかった)を持つことで、デフォルトの動作が呼び出されないことがあります。 deallocのすべてのインスタンスをコメントアウトして、問題を解決する必要があります。

+0

スーパーdeallocを呼び出したsqliteに対してFMDatabaseを使用していました。私はスーパーデアロックをコメントアウトしましたが、楽器はまだ同じ場所にリークを示しています。私は私のプロジェクトでどこでもデアロックを持っていません。 –

0

。そのようにフォーマットしたのですか、それとも自動的にそのようにしましたか?ここに私のARCアプリの例があります。

int main(int argc, char *argv[]) { 

    @autoreleasepool { 
     int retVal = UIApplicationMain(argc, argv, nil, nil); 
     return retVal; 
    } 
} 
+0

これはXcodeによって私のために作成されました。 –

関連する問題