2012-03-18 4 views
15

Я разрабатываю приложение с использованием ARC При профилировании моего приложения в приборах для утечки памяти он показывает утечки на следующую функции:инструментов показывают утечку в main.m (Xcode 4.3.1)

#import <UIKit/UIKit.h> 

#import "AppDelegate.h" 

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

{ 
    @autoreleasepool { 
     return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 
    } 
} 

делает это указать проблему где-то еще в моем коде?

Это трассировки стека

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

Помогает ли эта втекание в инструменты? Я получаю около 10 записей, подобных этому за двухминутный запуск моего приложения: просочившийся объект: Malloc 48 байт, ответственная библиотека: libsystem_c.dylib Ответственный фрейм: strdup. –

+0

, вы должны иметь возможность щелкнуть по адресу этого блока malloc и получить от него трассировку стека, которая поможет вам понять, откуда она взялась. , но, если быть очень честным - 10x 48 байт утечки не является концом мира, если он остается на этом;) –

ответ

1

У меня была та же проблема при использовании ARC, и это было вызвано наличием функции dealloc в контроллере представления. Имея функцию dealloc (что в моем случае ничего не делало), поведение по умолчанию может не вызываться. Попробуйте комментировать все экземпляры dealloc, и это должно устранить вашу проблему.

+0

Я использовал FMDatabase для sqlite, у которого были вызовы super dealloc. Я прокомментировал супер dealloc, но приборы все еще показывают утечки в одном и том же месте. У меня больше нет dealloc в моем проекте –

0

Ваш main.m выглядит иначе, чем другие, которые я видел. Вы отформатировали его таким образом или автоматически сделали это? Вот пример из одного из моих приложений ARC.

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

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

Он был создан для меня Xcode. –

Смежные вопросы