我的一個ViewController我想根據某些時間標準調用方法updateVisitotsLists
,並且無法確定哪種方式最適合實現它。iOS設置NSTimer僅在活動/不活動頁面上調用方法
1)每當視圖加載/出現,我想調用這個方法。
對於這個viewDidAppear方法,我可以在調用[super viewDidAppear]之前調用它,所以這個工程,我相信。
2)如果用戶只在這個視圖上,那麼我想每5秒鐘調用一次這個方法。
爲此,我需要設置一個NSTimer。我想在viewDidDisappear時停止這個計時器 - 因爲不希望它運行不必要。我應該如圖所示使用一個UnScheduled Timer嗎?here和開始和停止出現&消失的方法?在viewDidAppear,最初我把這種方法,然後還建立
NSTimer *t = [NSTimer scheduledTimerWithTimeInterval: 5.0
target: self
selector:@selector(updateVisitotsLists:)
userInfo: nil repeats:NO];
會是怎樣達到我所期待的最佳途徑和方法?任何幫助,高度讚賞。
謝謝。
更新: -
@Lord Zolt,按你的意見,我做了以下內容: -
//In .h
@property (strong, nonatomic) NSTimer *timer;
// .m
@synthesize timer;
- (void)viewDidLoad
{
........
[super viewDidLoad];
// CREATE TIMER
timer = [NSTimer scheduledTimerWithTimeInterval:5 target:self selector:@selector(onTimerCall:) userInfo:nil repeats:YES];
}
-(void) viewWillDisappear:(BOOL)animated {
[timer invalidate];
timer = nil;
[super viewWillDisappear:animated];
}
-(void) onTimerCall: (NSTimer *) _timer {
// UPDATE VISITOR'S LIST
[self updateVisitotsLists];
}
這是正確的?
我會推薦使用定時器。 創建一個'NSTimer'屬性,但我建議在viewWillDisappear上調用'invalidate'。如果你不調用無效,當視圖控制器被解除或彈出時,它將不會被釋放,因爲NSTimer會保持它的活性。 –
@LordZsolt,請檢查上面問題中添加的代碼。 – Tvd
@LordZsolt,你可以把你的答案作爲答案,所以我可以標記爲已解決。 – Tvd