Почему вместо этого использовать CGImageRef, а не CGImage?
Я новичок в медиа-слое и фото-слое, и меня смущает то, что там много таких объектов, как CGImageRef
а также CMSampleBufferRef
и я не знаю, почему apple позволяет нам использовать объекты типа "XXXRef", а не объекты типа "XXX"? Я знаю, что должно быть несколько причин, но я не знаю, может кто-нибудь сказать мне, почему?
обновление: я имею в виду, почему яблоко хочет, чтобы мы к нам CGImageRef
вместо того, чтобы мы сами создаем Ref как CGImage *theCGImage
?
1 ответ
На самом деле, вы должны спросить об этом авторов Core Foundation =)
CGImage является C-структурой. Это означает, что он копируется каждый раз, когда передается как параметр или возвращаемое значение. Или даже, будучи назначенным на какую-то переменную. Я полагаю, что что-то вроде CGImage очень важно. Таким образом, просто передать указатель на это гораздо лучшая идея.
Я полагаю, что реальные причины этого решения были намного сложнее и связаны со счетчиком ссылок, мостами между объектами CF и Foundation и т. Д.