私は持っています
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同じです。nn2
私のコードの何が問題になっていますか?スタック内のナビゲーションコントローラーの1つへの弱参照を維持しようとしています。巻き戻し中に、リソースを解放する必要がありますが、参照されているコントローラーのみがそれを実行できます。