CFRelease 是否调用更具体类型的 Release 方法?
考虑一些 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是一个逆。 CGContextRelease() 将调用 CFRelease()。
Its a inverse. CGContextRelease() will call CFRelease().