NSTimer封装使用

来源:互联网 发布:网络分析仪器 编辑:程序博客网 时间:2024/06/06 02:33

.h文件

#import <Foundation/Foundation.h>@class TimerHolder;@protocol TimerHolderDelegate <NSObject>- (void)onTimerFired:(TimerHolder *)holder;@end@interface TimerHolder : NSObject@property (nonatomic,weak)  id<TimerHolderDelegate>  timerDelegate;- (void)startTimer:(NSTimeInterval)seconds          delegate:(id<TimerHolderDelegate>)delegate           repeats:(BOOL)repeats;- (void)stopTimer;@end

.m文件

#import "TimerHolder.h"@interface TimerHolder (){    NSTimer *_timer;    BOOL    _repeats;}- (void)onTimer: (NSTimer *)timer;@end@implementation TimerHolder- (void)dealloc{    [self stopTimer];}- (void)startTimer: (NSTimeInterval)seconds          delegate: (id<TimerHolderDelegate>)delegate           repeats: (BOOL)repeats{    _timerDelegate = delegate;    _repeats = repeats;    if (_timer)    {        [_timer invalidate];        _timer = nil;    }    _timer = [NSTimer scheduledTimerWithTimeInterval:seconds                                              target:self                                            selector:@selector(onTimer:)                                            userInfo:nil                                             repeats:repeats];}- (void)stopTimer{    [_timer invalidate];    _timer = nil;    _timerDelegate = nil;}- (void)onTimer: (NSTimer *)timer{    if (!_repeats)    {        _timer = nil;    }    if (_timerDelegate && [_timerDelegate respondsToSelector:@selector(onTimerFired:)])    {        [_timerDelegate onTimerFired:self];    }}@end
原创粉丝点击