CFRelease 是否调用更具体类型的 Release 方法?

发布于 2024-11-25 13:06:17 字数 371 浏览 2 评论 0原文

考虑一些 CGContextRef, CGContextRef 上下文引用; 则假设其现在已初始化

//如果用户不调用 CGContextRelease(contextref), ;并使用 CFRelease(contextref);

这会调用CGContextRelease()吗?

文档说“这个函数相当于 CFRelease,但如果 contextref 为 NULL,它不会导致错误。”我们可以将它们用于相同的目的,但这怎么可能呢?它们是如何联系在一起的?我的猜测是内部应该使用typeid来比较然后释放。我说得对吗?如果不是,它如何释放更特定类型的内存?

如果用户不清除内存并退出,或者强制退出,会发生什么?系统声明如何支持内存?

谢谢

Consider some CGContextRef,
CGContextRef contextref; // assume its initialised

Now if user does not call CGContextRelease(contextref); and uses CFRelease(contextref);

Will this call CGContextRelease()?

Documentation says "this function is equivalent to CFRelease, except it does not cause an error if contextref is NULL." We can use them for same purpose but hows that possible. How are they linked? My guess is that internally it should be using typeid to compare and then release. Am I right? If not How does it releases more specific type of memory?

What happens if user does not clear the memory and quits, of force quits? How does a system claim backs the memory?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

等风来 2024-12-02 13:06:17

这是一个逆。 CGContextRelease() 将调用 CFRelease()。

Its a inverse. CGContextRelease() will call CFRelease().

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文