我有
static __weak ExplorerController *_rootExplorer = nil;
和
_rootExplorer = self;
NSAssert(_rootExplorer == self, @"????");
哪个有效。
在 dealloc 中,我尝试这样做
bool b = _rootExplorer == self;
这是错误的,但调试器清楚地表明两个对象是相同的并且具有相同的物理地址。
当我做
long n = (long) (_rootExplorer);
long n2 = (long) (self);
我得到一个非常大的数字n2
和零n
。但_rootExplorer
不是nil
。但是,如果我在其他函数中做同样的事情,那不是dealloc
,n
并且n2
是相同的。
我的代码有什么问题?我试图保持对堆栈中导航控制器之一的弱引用,并且在展开期间,我需要释放资源,但只允许引用的控制器这样做。