获取指向对象的所有现有指针

时间:2011-12-22 08:00:44

标签: objective-c objective-c-runtime

是否可以获得指向目标c对象指针的指针列表。

类似

id **pointers(id object, int *out_count)

太疯狂了,对吧? =)

1 个答案:

答案 0 :(得分:2)

不幸的是,没有。如果这样的事情通常是可能的,那么写一个精确的垃圾收集器会很简单:

int count;
pointers(obj, &count);
if (count == 0) {
    free(obj);
}

由于objective-c垃圾收集器必须从根中追逐指针,控制分配器,并保守扫描堆栈以实现类似的东西,我认为假设你需要做同样的事情是合理的。

如果在GC模式下运行,可能可以利用垃圾收集器的实现。不是一个好主意,不简单,也不会在iOS上运行,但也许可能。毕竟libauto是开源的。