Есть ли способ проверить объекты NSAutoreleasePool? - PullRequest
5 голосов
/ 28 января 2011

Просто интересно, возможно ли это вообще, может быть, я мог бы получить NSSet объектов, которые в данный момент хранятся в данном NSAutoreleasePool экземпляре?

Я просмотрел справку Apple NSAutoreleasePool и не нашел ничего, касающегося этого вопроса.

Ответы [ 2 ]

9 голосов
/ 28 января 2011

Если целью является только отладка, вы можете использовать функцию _CFAutoreleasePoolPrintPools() для печати содержимого пула, как описано в TN2124 . Он доступен начиная с Mac OS X 10.6 и iOS, может быть, начиная с 3.x.

В качестве альтернативы метод класса [NSAutoreleasePool showPools] выполняет то же действие.

2 голосов
/ 28 января 2011

Нет, нет.Детали реализации NSAutoreleasePool представляют собой глубокую чёрную магию.

Вместо этого вы можете создать собственный пул автоматического выпуска и каким-то образом обмануть среду выполнения, заставив ее думать, что ей следует использовать ваш пул вместо NSAutoreleasePool.Но делайте это только для того, чтобы испытать острые ощущения.

ОДНАКО, ВЫ НЕ ДОЛЖНЫ ИЗМЕНИТЬ ПОВЕДЕНИЕ АВТОРИЗАЦИИ ДЛЯ ЧТО-ЛИБО, ЧЕМ, ЧЕМ ЭКСПЕРИМЕНТАЦИЯ И ОБУЧЕНИЕВ противном случае я найду вас.И СДЕЛАЙТЕ, ЧТОБЫ ПЕРЕЗАПИСАТЬ СВОЙ КОД.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...