当使用带有完成处理程序(如 AVAssetExportSession)异步返回的 Objective-C 对象时,这样的代码是否有任何错误:
AVAssetExportSession* exportSession = [[AVAssetExportSession alloc] initWithAsset: composition presetName: AVAssetExportPresetHighestQuality];
[exportSession exportAsynchronouslyWithCompletionHandler: ^(void) {
// export completed
NSLog(@"Export Complete %d %@", exportSession.status, exportSession.error);
[exportSession release];
}];
Instruments 将 exportSession 报告为泄漏。我自己也有一些使用相同方法的类,它们也被报告为泄漏。
从我读过的所有内容来看,代码似乎应该遵循正确的内存管理规则,但必须有一些东西。我找到了这篇文章的链接,但我认为我不会导致循环保留。