Получить все существующие указатели на объект


Можно ли получить список указателей на указатели на объект objective c?

Что-то вроде

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

Довольно безумно, да? =)

1 2

1 ответ:

К сожалению, нет. Если бы такое вообще было возможно, то написать точный сборщик мусора было бы довольно просто:

int count;
pointers(obj, &count);
if (count == 0) {
    free(obj);
}
Поскольку сборщик мусора objective-c должен преследовать указатели от корней, управлять распределителем и консервативно сканировать стек, чтобы достичь чего-то подобного, я думаю, разумно предположить, что вам нужно будет сделать то же самое.

Можно было бы использовать реализацию этого сборщика мусора, однако, если бы он работал в GC режим. Не очень хорошая идея, не простая, и не будет работать на iOS, но, возможно, возможно. в конце концов, libauto-это открытый исходный код.