Objective c MTLCreateSystemDefaultDevice的引用计数返回值
我正在使用Objective-C而不使用ARC,我想知道在这样使用时是否需要释放MTLCreateSystemDefaultDevice返回的设备:Objective c MTLCreateSystemDefaultDevice的引用计数返回值,objective-c,cocoa,Objective C,Cocoa,我正在使用Objective-C而不使用ARC,我想知道在这样使用时是否需要释放MTLCreateSystemDefaultDevice返回的设备: id<MTLDevice> device = MTLCreateSystemDefaultDevice() id device=MTLCreateSystemDefaultDevice() 我不确定id如何维护引用计数。基于内存管理的命名约定,我假设MTLCreateSystemDefaultDevice没有添加引用(但可能是错误的
id<MTLDevice> device = MTLCreateSystemDefaultDevice()
id device=MTLCreateSystemDefaultDevice()
我不确定
id
如何维护引用计数。基于内存管理的命名约定,我假设MTLCreateSystemDefaultDevice
没有添加引用(但可能是错误的),但是分配给id
可能会导致调用retain?是的,您需要在使用完对象后释放它。对于C函数(而不是Objective-C消息),相关的命名约定为。因为函数名中有“Create”,所以它返回一个由您负责发布的+1引用。(事实上,它返回的是Objy-C类型,而不是核心基础类型,这并不重要。)
至于id
,即id
,Objective-C的通用对象类型,协议名称
,表示设备
指向的对象符合MTL设备
协议。(有点奇怪,这实际上比单独使用id
更具限制性,因为如果您尝试调用MTLDevice
及其超级协议支持的方法以外的方法,编译器会发出警告。)并不是说对象是幕后的某个具体类,而是一个私有实现细节