有人能帮我吗,我有一些代码,我正在检查retainCount,但它总是-1,它至少应该是1?
这是我的代码,我哪里做错了?
NSNumber* n = [[NSNumber alloc] initWithInt:100];
NSLog(@"Count of n : %i",[n retainCount]);
NSNumber* n1 = n;
NSLog(@"Count of n : %i",[n retainCount]);
NSLog(@"Count of n1: %i",[n1 retainCount]);
NSLog(@"Address of n : %p", n);
NSLog(@"Address of n1: %p", n1);我得到的另一个奇怪的事情是关于%i,它实际上返回一个uint,所以我将%i替换为%u,现在我得到了一个非常长的retainCount - 4294967295数字
有点困惑,有什么想法吗?
提前感谢
发布于 2012-08-25 12:54:26
-retainCount的结果在您的抽象级别上毫无价值,这是另一个原因。
…但是为了继续你的问题:NSUIntegerMax表示一个不朽的对象。
您可以在一些文档中找到对此的参考:
您可以在类中重写此方法以实现您自己的引用计数方案。对于从不释放的对象(即它们的release方法不执行任何操作),此方法应返回
<limits.h>中定义的UINT_MAX。
https://stackoverflow.com/questions/12119237
复制相似问题