持续检查数据(方法)iOS

持续检查数据(方法)iOS,ios,cocoa-touch,continuous,Ios,Cocoa Touch,Continuous,是否有任何方法(如–viewDidLoad)可以连续执行部分代码?我需要能够连续检查远程服务器上的值。执行此操作的方法是设置NSTimer -(void)startCheckingValue { mainTimer = [NSTimer timerWithTimeInterval:1.0 target:self selector:@selector(checkValue:) userInfo:nil repeats:YES]; [[NSRunLoop mainRunLoop] a

是否有任何方法(如–viewDidLoad)可以连续执行部分代码?我需要能够连续检查远程服务器上的值。

执行此操作的方法是设置NSTimer

-(void)startCheckingValue
{
    mainTimer = [NSTimer timerWithTimeInterval:1.0 target:self selector:@selector(checkValue:) userInfo:nil repeats:YES];
    [[NSRunLoop mainRunLoop] addTimer:mainTimer forMode:NSDefaultRunLoopMode];
}

-(void)checkValue:(NSTimer *)mainTimer
{
    //Placeholder Function, this is where you write the code to check your value on the remote server
}

timerWithTimeInterval函数是您感兴趣的函数,您需要传递它的主要内容,正如您在上面看到的,是它执行您传递其选择器的函数的时间间隔。时间间隔以秒为单位,因此当前设置为每秒检查一次,这可能太快了。

使用NSTimer每x秒执行一次相同的代码块。然而,我不认为这是你想要的,因为这会给服务器增加很多额外的负载,你可能会被禁止,所以可能有更好的方法

您必须为此使用:

在界面中声明一个
NSTimer
对象,如:

NSTimer *timer;
在.m
viewDidLoad
方法中添加以下行

timer = [NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(timerFireMethod:) userInfo:nil repeats:YES];

timerFireMethod
方法中,您需要执行服务器调用和其他操作。

在单例类中使用
NSTimer
:有没有更有效的方法?此方法(设置为.01秒)在3台iPad上测试30分钟后,在上生成230526个API请求。我需要的效率与计时器设置为.01秒时的效率相似。