我正在使用id<MTLBuffer> vertexBuf = [device newBufferWithLength:count * sizeof(float) options:0]; 如何释放vertexBuf内存,将大大增加内存。在苹果的文档中,没有暗示要取消分配MTLBuffers,而就我而言,我不能再使用它了。我尝试vertexBuf = nil;没有任何改善,并且我的项目已启用ARC,因此我无法使用[vertexBuf release]。有什么办法可以释放内存吗?

编辑:
我可以重用,但是OpenGLES2 glDeleteBuffers中有一个选项,在许多情况下都非常有用。所以我正在寻找与金属相似的东西。

最佳答案

找出谁在使用vertexBuf。有人正在使用它并坚持使用它,否则,如果将其设置为nil,则内存将消失。

顺便说一句。发布不会帮助您。 ARC确实会为您保留/发布,除非它可能会更加小心并始终正确。如果您可以释放它,并且内存消失了,那么使用vertexBuf的任何人也可能会释放您的应用程序。

关于ios - 如何取消分配id <MTLBuffer> Metal iOS?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29491982/

10-09 16:34