我的应用程序漏洞了,我真的无法理解,任何人都可以帮助我吗?
工具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
答案 0 :(得分:2)
这是在模拟器还是物理设备上?
如果它在模拟器上,请针对物理设备进行测试以防泄漏。众所周知,模拟器具有设备所没有的奇怪泄漏。
如果这是在物理设备上,我也无法解释它:\
答案 1 :(得分:2)
答案 2 :(得分:0)
在我看来,就像webkit中的漏洞一样......除了向Apple提交报告之外,你可能做的事情不多。
答案 3 :(得分:0)
我认为Morion是对的。永远不要在主线程之外的其他线程中使用UI。我偶然发现了最有趣的事情。
你说:
我的大多数绘图都是从View(Will / Did)Appear方法完成的。或者是从线程填充的UITableViewController。
因此,控制器被另一个线程填充,这意味着该绘图也在这个“其他”线程中执行。尝试使用performSelectorOnMainThread:withObject:waitUntilDone: