私は持っています
static __weak ExplorerController *_rootExplorer = nil;
と
_rootExplorer = self;
NSAssert(_rootExplorer == self, @"????");
動作します。
デアロックでは、これをやろうとしています
bool b = _rootExplorer == self;
これは誤りですが、デバッガーは両方のオブジェクトが同じであり、同じ物理アドレスを持っていることを明確に示しています。
私がする時
long n = (long) (_rootExplorer);
long n2 = (long) (self);
の場合は非常に大きな数を取得し、のn2
場合はゼロを取得しn
ます。しかし、_rootExplorer
そうではありませんnil
。ただし、他の関数で同じことを行う場合は、ではなく、dealloc
同じです。n
n2
私のコードの何が問題になっていますか?スタック内のナビゲーションコントローラーの1つへの弱参照を維持しようとしています。巻き戻し中に、リソースを解放する必要がありますが、参照されているコントローラーのみがそれを実行できます。