gpt4 book ai didi

objective-c - UIPopoverController 内存在使用 ARC 解散后未被释放

转载 作者:行者123 更新时间:2023-11-28 22:53:34 24 4
gpt4 key购买 nike

我的项目中有一个 UIPopoverController,其中包含一个包含 UIDatePicker 作为其内容的 ViewController。

单击按钮时会显示弹出窗口。分配弹出窗口及其内容后,应用程序内存增加了大约 2.5 MiB。

由于我在内存中有 2 个独立的弹出窗口实例,因此它增加了大约 5mb。

我的问题是在 popover 被关闭后它的内存永远不会被释放。另外,由于我启用了 ARC,因此无法手动释放它。

任何人都可以指导我如何在与 ARC 一起使用时弹出窗口被关闭时释放内存。

代码如下:

-(IBAction)btnDateSelect:(id)sender
{

CGRect popoverRect;
appDelegate.objDtPicker = [[ViewDatePicker alloc]init];
appDelegate.objDtPicker.delegate = self;

self.popOver = [[UIPopoverController alloc]initWithContentViewController:
appDelegate.objDtPicker];
popOver.delegate = self;

if ([sender tag] == 70)
{
popoverRect = [self.view convertRect:[btnFromDate frame]
fromView:[btnFromDate superview]];
bFromDate = TRUE;
bToDate = FALSE;

}
else
{
bFromDate = FALSE;
bToDate = TRUE;
popoverRect = [self.view convertRect:[btnToDate frame]
fromView:[btnToDate superview]];
}


popOver.popoverContentSize=CGSizeMake(400.0,216.0);
[popOver presentPopoverFromRect:popoverRect inView:self.view
permittedArrowDirections:UIPopoverArrowDirectionDown
animated:NO];
}

最佳答案

我猜 self.popOver 是一个强大的属性?它由该属性保留。当您关闭 View 时,您可以将此属性设置为 nil(使用委托(delegate)方法)。

关于objective-c - UIPopoverController 内存在使用 ARC 解散后未被释放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11291619/

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