Почему вместо этого использовать CGImageRef, а не CGImage?

Я новичок в медиа-слое и фото-слое, и меня смущает то, что там много таких объектов, как CGImageRef а также CMSampleBufferRef и я не знаю, почему apple позволяет нам использовать объекты типа "XXXRef", а не объекты типа "XXX"? Я знаю, что должно быть несколько причин, но я не знаю, может кто-нибудь сказать мне, почему?


обновление: я имею в виду, почему яблоко хочет, чтобы мы к нам CGImageRef вместо того, чтобы мы сами создаем Ref как CGImage *theCGImage?

1 ответ

Решение

На самом деле, вы должны спросить об этом авторов Core Foundation =)

CGImage является C-структурой. Это означает, что он копируется каждый раз, когда передается как параметр или возвращаемое значение. Или даже, будучи назначенным на какую-то переменную. Я полагаю, что что-то вроде CGImage очень важно. Таким образом, просто передать указатель на это гораздо лучшая идея.

Я полагаю, что реальные причины этого решения были намного сложнее и связаны со счетчиком ссылок, мостами между объектами CF и Foundation и т. Д.

Другие вопросы по тегам