gpt4 book ai didi

ios - 在Objective-C中创建后台循环例程的更好方法是什么?

转载 作者:行者123 更新时间:2023-12-01 18:21:04 25 4
gpt4 key购买 nike

我需要创建一个例程,以在恒定的时间段内自动保存文件内容,即执行保存指令的背景循环。我认为在使用performSelector的递归调用,如下所示:

- (void)viewWillAppear:(BOOL)animated{

[super viewWillAppear:animated];

[self performSelector:@selector(saveMethod) withObject:nil afterDelay:kTimeConstant];

}

- (void)saveMethod{

//The save logic should to be here

[self performSelector:@selector(saveMethod) withObject:nil afterDelay:kTimeConstant];

}

它可以工作,但是当我离开viewController时,它仍在运行,并且必须停止。
有没有更好的执行方法?谢谢!

最佳答案

这可能是一个更好的实现:

- (void)viewWillAppear:(BOOL)animated {

[super viewWillAppear:animated];

// Start timer and sets it to a property called saveTimer
self.saveTimer = [NSTimer scheduledTimerWithTimeInterval:2.0
target:self
selector:@selector(saveMethod:)
userInfo:nil
repeats:YES];
}

- (void)saveMethod:(NSTimer*)theTimer {
// The save logic should to be here
// No recursion
}

- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];

// Stop timer
[self.saveTimer invalidate];
}

它在主线程上运行,因此它可能不是最佳的实现,但是它应该比您当前拥有的更好。

关于ios - 在Objective-C中创建后台循环例程的更好方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17349049/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com