Получить все существующие указатели на объект
Можно ли получить список указателей на указатели на объект objective c?
Что-то вроде
id **pointers(id object, int *out_count)
Довольно безумно, да? =)
1 ответ:
К сожалению, нет. Если бы такое вообще было возможно, то написать точный сборщик мусора было бы довольно просто:
Поскольку сборщик мусора objective-c должен преследовать указатели от корней, управлять распределителем и консервативно сканировать стек, чтобы достичь чего-то подобного, я думаю, разумно предположить, что вам нужно будет сделать то же самое.int count; pointers(obj, &count); if (count == 0) { free(obj); }
Можно было бы использовать реализацию этого сборщика мусора, однако, если бы он работал в GC режим. Не очень хорошая идея, не простая, и не будет работать на iOS, но, возможно, возможно. в конце концов, libauto-это открытый исходный код.