0
 -(void)NewButton
    {
        ApplianceViewController *VC = [[ApplianceViewController alloc] initWithNibName:@"ApplianceViewController" bundle:[NSBundle mainBundle]] ;

        NSLog(@"Retain count before pushViewController:%d",VC.retainCount);//prints1 
        [self.navigationController pushViewController:VC animated:YES];
        NSLog(@"Retain count after pushViewController:%d",VC.retainCount);//prints 7
        [VC release];
        NSLog(@"Retain count after Release:%d",VC.retainCount);// prints 6
    }

私のコードでは、保持カウントが異常に増加します。私は多くの時間を費やしました。助けてください。

4

2 に答える 2

1

オブジェクトの保持カウントの絶対値は無意味です。

詳細については、 http : //www.whentouseretaincount.comを参照してください。

表示されている保持カウントは、フレームワークの内部実装の詳細です。それらは事実上、無意味です。多くの場合、保持カウントはそのコードと同じくらい高くなります。これは、View Controller をアニメーションに絡ませているためです。これには、複数の参照と複雑な背後の問題が必要です。

あなたが投稿したコードは問題ではありません。

「ライブ参照のみを追跡する」および「参照カウントを追跡する」をオンにして、割り当てインストゥルメントを使用します。次に、リークを再現し、問題のオブジェクトの保持/解放イベントのインベントリをクリックします。これにより、オブジェクトが保持されている (および解放されている) 正確な場所のリストが得られ、オブジェクトがまだメモリ内にある理由が正確にわかります。

于 2013-01-29T07:33:23.603 に答える
0

実は私は1つの財産を持っています

@property(非アトミック、保持) IBOutLet UITableView myTableView;

nibファイルから参照を取得していました。保持を割り当てに置き換えました。そして、問題は解決しました。

于 2013-02-01T11:07:47.690 に答える