我应该在桥接转换后释放c指针吗(目标c)



想知道是否应该释放下面的"size"指针?

NSSize *size = (__bridge NSSize*)[track attributeForKey:QTTrackDimensionsAttribute];
...
free(size);

这摘自Apple文档过渡到ARC发行说明

__bridge在Objective-C和Core Foundation之间转移指针,而不转移所有权。

它的工作原理与标准铸件相同。如果你不使用免费,ARC会为你做这项工作。

您正在调用的方法的返回类型为(id)
因此,这里没有涉及C pointer,这使得free(size)完全错误,也不需要__bridge强制转换,因为id已经是一个对象,ARC将知道如何处理它。

根据您传递的键,返回对象的类型会有所不同,请参阅类文档以获得您将获得的确切类类型。

最新更新