Утечка памяти 0x0 [iphone] - PullRequest
       7

Утечка памяти 0x0 [iphone]

3 голосов
/ 17 декабря 2009

У меня есть утечка в моем приложении, которую я действительно не могу понять, может кто-нибудь помочь мне с этим?

Stacktrace инструментов:

       0 libSystem.B.dylib calloc
       1 WebCore CurrentThreadContext()
       2 WebCore WKSetCurrentGraphicsContext
       3 UIKit -[NSString(UIStringDrawing) drawAtPoint:forWidth:withFont:lineBreakMode:letterSpacing:includeEmoji:]
       4 UIKit -[NSString(UIStringDrawing) drawAtPoint:forWidth:withFont:lineBreakMode:]
       5 UIKit -[UILabel _drawTextInRect:baselineCalculationOnly:]
       6 UIKit -[UILabel drawTextInRect:]
       7 UIKit -[UILabel drawRect:]
       8 UIKit -[UIView(CALayerDelegate) drawLayer:inContext:]
       9 QuartzCore -[CALayer drawInContext:]
      10 QuartzCore -[CALayer _display]
      11 QuartzCore -[CALayer display]
      12 QuartzCore CALayerDisplayIfNeeded
      13 QuartzCore CA::Context::commit_transaction(CA::Transaction*)
      14 QuartzCore CA::Transaction::commit()
      15 QuartzCore CA::Transaction::release_thread(void*)
      16 libSystem.B.dylib _pthread_tsd_cleanup
      17 libSystem.B.dylib _pthread_exit
      18 Foundation +[NSThread exit]
      19 Foundation __NSThread__main__
      20 libSystem.B.dylib _pthread_body
      21 TestApp 0x0

Ответы [ 4 ]

2 голосов
/ 17 декабря 2009

что вы делаете до появления утечки? некоторые вещи могут вызывать утечки, например, при попытке внести изменения в пользовательский интерфейс не из основного потока.

2 голосов
/ 17 декабря 2009

Это на симуляторе или физическом устройстве?

Если это на симуляторе, пожалуйста проверьте физическое устройство на утечки . Известно, что симулятор имеет странные утечки, которых нет у устройств.

Если это на физическом устройстве, я также затрудняюсь объяснить это: \

0 голосов
/ 18 декабря 2009

Я думаю, что Морион прав. Никогда не делайте что-либо с пользовательским интерфейсом из другого потока, кроме основного потока. У меня были самые смешные вещи, когда я делал это случайно.

Вы сказали:

Большая часть моего рисунка выполняется методами View (Will / Did) Appear. Или UITableViewController, который заполняется из потока.

Таким образом, контроллер заполняется другим потоком, что означает, что этот рисунок также выполняется в этом "другом" потоке. Попробуйте использовать performSelectorOnMainThread:withObject:waitUntilDone:

Взгляните сюда: Справочная документация

0 голосов
/ 17 декабря 2009

Выглядит для меня как утечка внутри webkit ... вероятно, вы мало что можете с этим поделать, кроме как подать отчет в Apple.

...