想知道我是否应该在下面释放“大小”指针?
NSSize *size = (__bridge NSSize*)[track attributeForKey:QTTrackDimensionsAttribute];
...
free(size);
答案 0 :(得分:0)
这取自Apple文档转换为ARC发行说明
__ bridge在Objective-C和Core Foundation之间传输指针,不转让所有权。
它的工作原理与标准演员相同。你不使用免费的,ARC会为你完成这项工作。
答案 1 :(得分:0)
您呼叫的方法的返回类型为(id)
因此,此处不存在C pointer
,这使free(size)
完全错误,并且__bridge
强制转换也不需要,因为id
已经是对象而ARC将知道该怎么做做它。
根据您传递的Key,返回对象的类型会有所不同,请参阅class documentation以获取您将获得的确切类类型。