0

そのため、私の ARC プロジェクトでは、インスタンス変数を使用して ViewController を割り当てるたびに、コントローラーを閉じたりポップしたりするときに dealloc が呼び出されないように見えます。

私のヘッダーで:

ComposerView *composeView;

...

@property (nonatomic, retain) ComposerView *composeView;

...

@synthesize composeView;

次に私のコードで:

if (composeView == nil)
      composeView = [[ComposeView alloc] init];

[self.navigationController pushViewController: composeView];

ここで、composeView 内ですべてのデリゲートを nil に設定しましたが、dealloc が呼び出されることはなく、その後、ビュー コントローラーをリロードするときに viewDidLoad が再度呼び出されることはありません。

インスタンス変数を使用せず、直接作成するだけであれば、すべて問題ありません。どんな助けでも大歓迎です、ありがとう!

4

1 に答える 1

0

ARC を使用している場合は、プロパティを保持/割り当てではなく、強/弱として宣言する必要があります。

あなたはおそらくしたいです

@property (nonatomic, weak) ComposerView *composeView;

強い/弱いの説明については、このリンクを確認してください: https://developer.apple.com/library/ios/#releasenotes/ObjectiveC/RN-TransitioningToARC/_index.html#//apple_ref/doc/uid/TP40011226

于 2012-02-09T03:04:27.183 に答える