Хотя вы можете освободить ссылку на объект CGImageRef, используя «CGImageRelease», который, согласно SDK, это «уменьшает количество удержаний растрового изображения», есть ли способ проверить текущий счетчик времени для экземпляра CGImageRef? [cgImageRef retainCount] недействителен, поскольку CGImageRef не является действительным получателем сообщения keepCount.Получение значения удержания для объекта CGImageRef?
Другими словами, во время dealloc в классе, который отображает EAGLContext, я хочу удостовериться, что выпущены какие-либо выдающиеся ссылки на объекты CGImageRef, но я, очевидно, не хочу вызывать CGImageRelease (someCGImageRef), если его счет сохранения уже 0. На практике я обнаружил, что просто проверка того, соответствует ли ref ref nil, не соответствует текущим значениям счетчика удержания.
Лучше всего просто установить экземпляр CGImageRef на нуль после того, как вы закончите с ним, и вы уже выпустили его, чтобы чек (someCGImageRef == nil) дал вам знать, есть ли выдающийся ссылку на него?
Благодаря
Что странно, что даже после того, как тестирование для не NULL и передачи, вызов CFGetRetainCount в экземпляре CGImgeRef приводит к сбою в моем случае, когда я пытаюсь очистить контекст EAGL. Пока я просто устанавливаю экземпляры CGImageRef в ноль, и я не вижу утечек. –