我对iOS编程比较陌生,所以我会尽力描述我遇到的问题。如果我可以提供一些额外的信息来清理,请告诉我。
我目前正在我的应用中的UIPopoverController中显示UIPickerView。我遇到的问题是当我使用泄漏工具进行分析时,每次弹出窗口被解除时都会弹出内存泄漏。这是用于初始化弹出窗口和选择器视图的代码。
// Show the popover
CGRect cellRect = [tableView rectForRowAtIndexPath:indexPath];
UIViewController *vc = [[UIViewController alloc] init];
[vc setContentSizeForViewInPopover:CGSizeMake(320, 216)];
UIPickerView *pv = [[UIPickerView alloc] init];
[pv setShowsSelectionIndicator:YES];
[pv setDataSource:self];
[pv setDelegate:self];
[[vc view] addSubview:pv];
inputPopoverController = [[UIPopoverController alloc] initWithContentViewController:vc];
[inputPopoverController setDelegate:self];
[pv selectRow:selection inComponent:0 animated:NO];
vc = nil;
pv = nil;
[inputPopoverController presentPopoverFromRect:cellRect inView:[self view] permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
inputPopoverController声明为
UIPopoverController *inputPopoverController;
这里是我发布popover控制器的地方,我已经确认每次弹出窗口被解除时都会调用该函数。
- (void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController {
inputPopoverController = nil;}
仪器显示以下两个位置的泄漏
[pv selectRow:selection inComponent:0 animated:NO];
和
[inputPopoverController presentPopoverFromRect:cellRect inView:[self view] permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
提前致谢。