gpt4 book ai didi

iphone - PerformSelector In后台泄漏在设备上

转载 作者:行者123 更新时间:2023-12-03 16:22:40 26 4
gpt4 key购买 nike

虽然它在模拟器上似乎不会造成问题,但在设备上使用 performSelectorInBackground 会导致内存泄漏。或者至少 Instruments 是这么表示的。查看代码我没有任何线索可能是什么原因。我试图将受影响的代码剥离到最低限度,但仍然奇怪的是,每次执行这段代码时,Instruments 都会显示泄漏。

这里有什么异常情况吗?

 //In viewcontrollerA:
-(void)mainLoop
{
[self.viewControllerB performSelectorInBackground:@selector(calculateTotals) withObject:nil];

//This gives the same problem
//[NSThread detachNewThreadSelector:@selector(calculateTotals) toTarget:self.viewControllerB withObject:nil];

//UI stuff ...

}

//viewControllerB:
-(void)calculateTotals
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

//Heavy calculations ...


[pool release];
}

编辑:我仍在研究这一点,似乎泄漏是由于堆栈中的某个位置 [NSThread start] 后面永远不会跟着 [NSThread exit] 造成的。因此,似乎偶尔会有一个线程一直运行而从未结束。现在我的问题是,我可以做些什么来手动结束这些“悬而未决”的威胁吗?

最佳答案

也许你的一个线程抛出了异常?线程中的异常不会在调试控制台中报告,您必须捕获线程中的异常。

关于iphone - PerformSelector In后台泄漏在设备上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2894237/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com