想知道是否应该释放下面的"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将知道如何处理它。
根据您传递的键,返回对象的类型会有所不同,请参阅类文档以获得您将获得的确切类类型。