当在object c中使用回调涵数时出现这样的警告:“capturing 'self' strongly in this block is likely to lead to a retain cycle”
我是从这里看的:http://stackoverflow.com/questions/14556605/capturing-self-strongly-in-this-block-is-likely-to-lead-to-a-retain-cycle
The capture of self
here is coming in with your implicit property access of self.timerDisp
- you can't refer to self
or properties on self
from within a block that will be strongly retained by self
.
You can get around this by creating a weak reference to self
before accessing timerDisp
inside your block:
_weak typeof(self) weakSelf = self;[player addPeriodicTimeObserverForInterval:CMTimeMakeWithSeconds(0.1,100)queue:nil
usingBlock:^(CMTime time){
current+=1;if(current==60){
min+=(current/60);
current =0;}[weakSelf.timerDisp setText:[NSString stringWithFormat:@"%02d:%02d",min,current]];}];