Возможно, у меня нет окончательного ответа, но я поделюсь техникой, которую я решил попробовать, что является шагом в правильном направлении.
С помощью ARC компилятор не позволит вам запрашивать удержаниеCount, и он даже достаточно умен, чтобы вы не выполнили функциюSelector: @selector (retainCount). Однако я не сдался и пошел еще дальше, чтобы получить доступ к этому полезному индикатору отладки.
[anInstance performSelector:NSSelectorFromString(@"retainCount")];
Это проходит мимо компилятора и покажет немного больше под капотом. Это не стеки, но с плодовитой регистрацией этого значения вы можете получить некоторые подсказки.
Я, вероятно, собираюсь отказаться от него, но я играю с еще более сложной (читай: уродливой) техникой, чтобы получить стопки. Основная идея заключается в том, чтобы «расширить» метод сохранения через среду выполнения «объектив-c», либо с помощью class_addMethod(), либо с помощью метода_setImplementation. Я дам честное предупреждение, что до сих пор мне мало надежд, что я заработаю его, и я скоро смогу вернуться к более частым журналам вышеупомянутого вызова «Спектр».
Удачи!
редактировать Так как я писал это, я обнаружил функции ядра Foundation:
NSLog("RetainCount: %ld", (CFGetRetainCount((__bridge CFTypeRef) anInstance));
которые не могут работать в всех случаях, но большинство, конечно. См. The documentation.
Я думаю, это лучшее, что вы можете сделать прямо сейчас ... Я в конечном итоге выяснил, почему инструменты рушится и использует его для моей первоначальной проблемы – yonix
Прохладный. Я также добавил примечание в своем ответе о CFGetRetainCount, которое я только недавно обнаружил. –