私はUIPopoverControllerでalloc/initを実行してから、デリゲートメソッドで解放します。 「ビルドと分析」を実行するたびに、「潜在的なリーク」を伴うメモリ警告が表示されます。何か間違っているのですか、それともその警告を取り除く方法がありますか?UIPopoverControllerおよびdelegate-methodでのリリース。 "潜在的なメモリリーク"
ありがとうございます!
- (void) somewhere {
MyViewController *vc = [[MyViewController alloc] init];
UIPopoverController *popover=[[UIPopoverController alloc] initWithContentViewController:vc];
[vc release];
// show the popover
[popover presentPopoverFromRect:[cell frame] inView:self.tableView permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
popover.delegate = self;
}
- (void) popoverControllerDidDismissPopover:(UIPopoverController *)popoverController {
[popoverController release];
popoverController = nil;
}
EDIT:それはフレームワークによってリリースされますので、あなたはは、popoverController
インスタンスを解放してはならないpopoverControllerDidDismissPopover:
方法でショー完全どこかに、機能のすべての
残念ながら、それは動作しません。そこにUIPopoverController( "popover")を解放してはいけません。 – swalkner
あなたのクラスに 'popover'インスタンスをローカルに保存していない場合、あなたはもうそれを必要としません。 'どこか 'のソースコード全体を投稿してください。 – marzapower
私はまだ同意しません。私がそこにリリースを置くと、アプリケーションがクラッシュします。他のSO質問から: "UIPopoverControllerはわずかに異なるメモリ管理/所有を持っています。ポップオーバーはメモリを保持していないので、popviewcontrollerの所有権を提示オブジェクトに転送することはできません。 – swalkner