如何避免在NON-ARC代码中保留NSTimer的目标。

时间:2014-04-22 23:10:46

标签: ios iphone objective-c automatic-ref-counting nstimer

我没有使用ARC所以我不能使用弱。 请告诉我,我可以做些什么来不让 NSTimer 保留我自己的目标。

1 个答案:

答案 0 :(得分:0)

您可以继续创建一个不保留其目标的NSTimer版本

+ (NSTimer *) scheduledTimerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)yesOrNo
{
    NSWeakTimerTarget* timerTarget = [[NSWeakTimerTarget alloc] init];
    timerTarget.target = aTarget;
    timerTarget.selector = aSelector;
    timerTarget.timer = [NSTimer scheduledTimerWithTimeInterval:ti target:timerTarget selector:@selector(fire) userInfo:userInfo repeats:yesOrNo];
    return timerTarget.timer;
}

来自https://gist.github.com/bendytree/5674709