我正在为iOS 4.3及更高版本编写应用程序并使用automatic reference counting
。我有一个使用AVPlayer
播放的视频,并且希望能够在达到给定CMTime
时暂停此视频。我目前正在使用addBoundaryTimeObserverForTimes
并暂停所调用的AVPlayer
内的block
。它有效但我收到错误:
Capturing 'self' strongly in this block is likely to lead to a retain cycle
我的代码:
timeObserver = [player addBoundaryTimeObserverForTimes:endTime //An array of one NSValue representing a CMTime
queue:NULL
usingBlock:^{
[player pause];
}];
我无法找到正确的方法,并且非常感谢任何帮助。
谢谢!
答案 0 :(得分:0)
你必须使用__weak存储装饰器 例如把它放在你的区块代码之前:
__weak MYClass* blockSelf = self;
并在块内使用blockSelf而不是self。
<强>更新强>
刚刚在SO上找到了这个优秀的答案:
https://stackoverflow.com/a/7854315/100848