私は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;
ここで、ポップオーバーコントローラーを解放し、ポップオーバーが閉じられるたびに関数が呼び出されることを確認しました。
- (void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController {
inputPopoverController = nil;}
機器は、次の2つの場所でリークを示しています
[pv selectRow:selection inComponent:0 animated:NO];
と
[inputPopoverController presentPopoverFromRect:cellRect inView:[self view] permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
前もって感謝します。