2011-06-30 6 views
0

正しいメモリ管理を行っていることを再度確認したかったのです。これは正しいです?私は正しい量のリリースを持っていますか? deallocでUIPopoverControllerを使用したメモリ管理

[_sortOrderTableView release]; 

ポップオーバーを提示私のコードはこれです:私の.mファイルで

UITableView *_sortOrderTableView; 
@property (nonatomic, retain) UITableView *SortOrderTableView; 

:私の.hファイルで

- (IBAction)sortButtonOrderPressed:(id)sender { 
    UIViewController *sortOrderController = [[UIViewController alloc] init]; 

    self.SortOrderTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 200, 100)]; 
self.SortOrderTableView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"App_Background.png"]]; 
self.SortOrderTableView.bounces = NO; 
self.SortOrderTableView.scrollEnabled = NO; 
    sortOrderController.view = self.SortOrderTableView; 
    sortOrderController.contentSizeForViewInPopover = CGSizeMake(200, 100); 
    self.SortOrderTableView.delegate = self; 
    self.SortOrderTableView.dataSource = self; 

    self.SortPopover = [[UIPopoverController alloc] initWithContentViewController:sortOrderController]; 
    [self.SortPopover presentPopoverFromRect:_sortButtonOrder.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; 

    [self.SortOrderTableView release]; 
    [sortOrderController release]; 
} 

答えて

0

を削除の場合は、とにかに[_sortOrderTableView release];またはself.SortOrderTableView = nilである必要がありますが、すでにdeallocメソッドで呼び出しているので、ここで解放する必要はありません。あなたがそれをリリースしたい場合は、self.SortOrderTableView = nilを使用してください。

さらに、deallocメソッドでは、SortPopoverのインスタンス変数releaseが必要です。

+0

なぜ[_sortOrderTableView release]と[self.SortOrdersTableView release]を使用しますか?その部分は決して私には分かりませんでした。どうも。 – Crystal

+0

self.SortOrdersTableViewは、基本的に@synthesizeによって作成され、_sortOrderTableViewを設定して取得するインスタンスメソッドであり、メソッドを解放することはできません。 _sortOrderTableViewはインスタンス変数ですが、あなたはそれを解放することができます – Sascha