我是媒体层和照片层的新手,让我感到困惑的是有很多像 CGImageRef
和 CMSampleBufferRef
这样的对象,并且我不知道为什么苹果让我们使用“XXXRef”这样的对象而不是“XXX”这样的对象?我知道肯定有一些原因,但我不知道,有人能告诉我为什么吗?
更新:
我的意思是,为什么苹果希望我们使用 CGImageRef
而不是我们自己创建 Ref,比如 CGImage *theCGImage
?
最佳答案
实际上,你应该向 Core Foundation 作者询问这件事 =)
CGImage 是一个 C 结构体。这意味着,每次作为参数或返回值传递时都会复制它。或者,甚至被分配给某个变量。 我想像 CGImage 这样的东西是非常大的东西。因此,简单地传递一个指向它的指针是更好的主意。
我认为,这个决定背后的真正原因要复杂得多,并且与引用计数器、CF 和 Foundation 对象之间的桥接等有关
关于ios - 为什么使用 CGImageRef 而不是 CGImage 来代替?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30909126/