Mar*_*tin 1 macos reference-counting objective-c foundation ios
任何人都可以帮助,我有一些代码,我正在检查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);
Run Code Online (Sandbox Code Playgroud)
我得到的另一个奇怪的事情是关于%i,说它实际上返回了一个uint,所以我将%i替换为%u,现在我得到了一个非常长的retainCount数字 - 4294967295
有点困惑,有什么想法吗?
提前致谢
jus*_*tin 11
结果-retainCount在你的抽象级别上毫无价值,这也是另一个原因.
...但继续你的问题:NSUIntegerMax表明一个不朽的对象.
您可以在一些文档中找到对此的引用:
您可以在类中重写此方法以实现您自己的引用计数方案.对于永远不会被释放的对象(也就是说,它们的释放方法不执行任何操作),此方法应返回UINT_MAX,如中所定义
<limits.h>.
| 归档时间: |
|
| 查看次数: |
131 次 |
| 最近记录: |