为什么使用 CGImageRef 而不是 CGImage 呢?

For*_*lax 2 iphone objective-c ios cgimageref

我是媒体层和照片层的新手,让我感到困惑的是有很多像CGImageRef和这样的对象CMSampleBufferRef,我不知道为什么苹果让我们使用像“XXXRef”这样的对象而不是像“这样的对象” XXX”?我知道一定有一些原因,但我不知道,谁能告诉我为什么?


更新:我的意思是,为什么苹果要我们给我们,CGImageRef而不是我们自己创建 Ref CGImage *theCGImage

Ser*_* Jr 5

实际上,您应该询问 Core Foundation 作者 =)

CGImage 是一个 C 结构。这意味着,每次作为参数或返回值传递时,它都会被复制。或者,甚至被分配给某个变量。我想像 CGImage 这样的东西是非常大的东西。所以,简单地传递一个指向它的指针是更好的主意。

我相信这个决定背后的真正原因要复杂得多,并且与引用计数器、CF 和 Foundation 对象之间的桥接等有关