0

ビューコントローラの1つでARCがオフになっていますが、前のビューコントローラに移動すると、deallocメソッドが呼び出されません。

プッシュビューコントローラーには使用しました

Magazine_ArticleViewController_iPhone *viewController = [[Magazine_ArticleViewController_iPhone alloc] 
                                                         initWithNibName:@"Magazine_ArticleViewController_iPhone" 
                                                         bundle:[NSBundle mainBundle]];

viewController.hidesBottomBarWhenPushed = YES;

IssueDataHolder *dataHolder = [m_arrIssueData objectAtIndex:m_nCurrentIssueIndex];

NSLog(@"%d",dataHolder.nIssueID);

[viewController setM_IssueDataHolder:dataHolder];
[self.navigationController pushViewController:viewController animated:YES];
[viewController release]; 

以前使用したViewControllerをナビゲートするために

[self.navigationController popViewControllerAnimated:YES];
4

2 に答える 2

1

まだ問題のあるdeallocが呼び出されず、理由がわからない開発者の場合:Paulの回答によると[performSelector:withObject:afterDelay:]、この問題の理由である可能性があります。[performSelector:]新しいViewControllerをプッシュする前にキャンセルする必要があります。

[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(Method) object:nil];
于 2013-06-01T09:54:51.693 に答える
0

私のMagazine_ArticleViewController_iPhoneビューコントローラーのdeallocが呼び出されませんでした。これは、ビューコントローラー(Magazine_ArticleViewController_iPhoneビューコントローラーをプッシュしている)で、retainプロパティを持つデリゲートを取得したためです。@ "assign"にすると、deallocが起動されます。

@ PauldeLangeのコメントに完全に同意します。

を割り当てるためにデリゲートのretainプロパティを変更しました

于 2013-06-02T07:13:11.293 に答える