一.只調(diào)用一次計(jì)時(shí)器方法:
//不重復(fù)尺迂,只調(diào)用一次。timer運(yùn)行一次就會(huì)自動(dòng)停止運(yùn)行
myTimer?=?[NSTimer?scheduledTimerWithTimeInterval:1.5?target:self?selector:@selector(function:)?userInfo:nil?repeats:NO];
二.重復(fù)調(diào)用計(jì)時(shí)器方法:
//每2秒運(yùn)行一次function方法蚕涤。
timer?=??[NSTimer?scheduledTimerWithTimeInterval:2.0?target:self?selector:@selector(function:)?userInfo:nil?repeats:YES];
注意 : 將計(jì)數(shù)器的repeats設(shè)置為YES的時(shí)候,self的引用計(jì)數(shù)會(huì)加1铣猩。因此可能會(huì)導(dǎo)致self(即viewController)不能釋放揖铜,所以必須在viewDidDisappear方法里,將計(jì)數(shù)器timer停止达皿,否則可能會(huì)導(dǎo)致內(nèi)存泄露天吓。
三.徹底停止timer:(這是timer永久的停止, 停止后, 一定要將timer賦空, 否則還是沒(méi)有釋放, 會(huì)造成不必要的內(nèi)存開(kāi)銷)
//取消定時(shí)器
[timer?invalidate];
timer?=?nil;
四.在頁(yè)面消失的時(shí)候關(guān)閉定時(shí)器,然后等頁(yè)面再次打開(kāi)的時(shí)候峦椰,又開(kāi)啟定時(shí)器
//頁(yè)面將要進(jìn)入前臺(tái)龄寞,開(kāi)啟定時(shí)器
-(void)viewWillAppear:(BOOL)animated
{
//開(kāi)啟定時(shí)器
[self.myTimer?setFireDate:[NSDate?distantPast]]; //很遠(yuǎn)的過(guò)去
}
//頁(yè)面消失,進(jìn)入后臺(tái)不顯示該頁(yè)面汤功,關(guān)閉定時(shí)器
-(void)viewDidDisappear:(BOOL)animated
{
//關(guān)閉定時(shí)器
[self.myTimer?setFireDate:[NSDate?distantFuture]]; ?//很遠(yuǎn)的將來(lái)
}