gpt4 book ai didi

objective-c - NSRunAlertPanel 导致内存泄漏

转载 作者:行者123 更新时间:2023-12-03 17:12:36 24 4
gpt4 key购买 nike

在我的应用程序中,我使用 NSRunAlertPanel 来确认用户退出。

当我在仪器下运行应用程序以检测内存泄漏时,它在以下代码中显示内存泄漏。

 -(void)CloseWithConfirm
{
int answer;
//Here, it is showing memory leak.
answer = NSRunAlertPanel (@"Quit Confirmation", @"Do you want to quit?", @"Yes", @"No", @"Cancel");

if(NSAlertDefaultReturn == answer)
[self close];
}

有什么线索吗?

最佳答案

NSRunAlertPanel 实际上正在调用 runModalForWindow: 并创建一个模态事件循环。尽管点击模态窗口上的确认按钮会关闭该窗口,但它不会破坏所创建的模态循环。在 return if 语句中尝试这样做:

if (NSAlertDefaultReturn == answer) {
[NSApp stopModal];
[self close];
}

看看这段代码是否会停止内存泄漏。

FWIW,由于当此方法退出时您将关闭应用程序,因此最后发生内存泄漏可能不会影响太多。

关于objective-c - NSRunAlertPanel 导致内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17548917/

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