Ios NSTimer未触发,具有正确的方法签名

Ios NSTimer未触发,具有正确的方法签名,ios,objective-c,Ios,Objective C,我正在使用NSTimer每秒调用一个方法,但它不起作用。我可以使用[refreshTimer fire]手动调用它;但除此之外,它不起作用。你知道为什么吗 这里是我初始化计时器的地方: refreshTimer = [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(sendRefreshPacket:) userInfo:nil repeats:YES]; 然后是方法: - (void)sen

我正在使用NSTimer每秒调用一个方法,但它不起作用。我可以使用[refreshTimer fire]手动调用它;但除此之外,它不起作用。你知道为什么吗

这里是我初始化计时器的地方:

refreshTimer = [NSTimer scheduledTimerWithTimeInterval:2.0  target:self selector:@selector(sendRefreshPacket:) userInfo:nil repeats:YES];
然后是方法:

- (void)sendRefreshPacket: (NSTimer*) timer
{
    NSLog(@"Test");
}
试试这个:

dispatch_async(dispatch_get_main_queue(), ^{
                refreshTimer = [NSTimer scheduledTimerWithTimeInterval:2.0  target:self selector:@selector(sendRefreshPacket:) userInfo:nil repeats:YES];
            });

同一类中的两个方法?计时器是在主线程上运行?还是至少在运行其运行循环的线程上运行?运行循环以什么模式运行?我将代码复制/粘贴到一个裸露的iOS应用程序中,它可以正常工作。我不确定它在哪个线程上运行。。。我的印象是使用scheduledTimerWithTimeInterval而不是timerWithTimeInterval可以解决这个问题?