gpt4 book ai didi

Objective-C : Why is my retain count not 1?

转载 作者:行者123 更新时间:2023-12-03 17:28:16 24 4
gpt4 key购买 nike

我有一个非常简单的程序,我只需创建一个对象并查看保留计数。

#import <Foundation/Foundation.h>
#import "GeometryCalculator.h"

int main (int argc, const char * argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

GeometryCalculator *calculator = [[GeometryCalculator alloc] init];
NSLog(@"Counter: %d", [calculator retainCount]);

[calculator release];

[pool drain];
return 0;
}

我预计保留计数为 1,但实际是 16863520。GeometryCalculator 类完全是空的。没有方法,没有实例变量。

最佳答案

您正在启用垃圾收集的情况下对此进行测试。 retainCount 的结果在垃圾回收下是未定义的,但实际上,它返回对象的指针值,因为这是最快的未定义操作(在本例中为0x1015120) >).

(琐事:您也在 32 位进程中进行测试。如果是 64 位进程,您将获得指针的高位字,因为 Peter 引用了类型截断,那就是较低的值。)

关于 Objective-C : Why is my retain count not 1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3270655/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com