0

我正在尝试使用 NSLog 打印出终端中对象的保留计数。这是我的代码:

NSNumber *myInt=[[NSNumber alloc] initWithInteger: 100];
NSLog(@"myInt retain count=%d",[myInt retainCount]);

结果应该是1,但我在终端得到的是-1。我尝试使用 %u 而不是 %d 并最终得到 4294967295 结果。有谁知道为什么会这样?

4

1 回答 1

3

在@bbum 来到这里之前,我要说的是:

不要依赖-retainCount你的代码

它不会给你你期望的答案。事实证明,答案-1在这里是正确的,你认为它不正确的事实是因为框架在背后做着你不知道的事情。使用自动引用计数 (ARC),或者如果您必须使用手动保留/释放,则只需遵循内存管理指南而不使用该-retainCount方法。

于 2012-07-16T15:33:50.643 回答