在 iPhone 和 Apple Watch 之间发送数据时减少延迟的策略?

Strategy to Reduce Latency When Sending Data Between iPhone and Apple Watch?

在 iPhone 和 Apple Watch 之间发送数据时,我可以使用什么策略来减少延迟?

在模拟器上,有时延迟通常 >0.1s,这意味着计数器(参见下面的代码)通常会跳过一些数字。在 运行 数秒后,计数器的滞后增加到 >1s,并且计数器非常频繁地跳过 10+ 个数字。

我正在尝试为 Apple Watch 构建一个类似于 spritz 的应用程序,它需要文字以每分钟约 500 个字或每 0.12 秒 1 个字的速度在屏幕上闪烁。

- (void)willActivate {
    // This method is called when watch view controller is about to be visible to user
    [super willActivate];
    self.number = 0;
    NSTimer *t = [NSTimer timerWithTimeInterval:0.1 target:self selector:@selector(updateLabelText) userInfo:nil repeats:YES];
    NSRunLoop *runner = [NSRunLoop currentRunLoop];
    [runner addTimer:t forMode: NSDefaultRunLoopMode];
}
- (void)updateLabelText {
    NSString *str = [NSString stringWithFormat:@"number %ld", self.number];
    [self.testLabel setText:str];
    self.number += 1;
}

您不能仅仅因为应用程序与手表的通信方式而保证 Apple 手表的更新速度。 UI 更新通常在 0.1 秒后交付,这使得您的 sprintz like app 由于当前条件而无法运行。

也许在未来的框架中苹果会允许原生手表应用程序,但现在,UI 被发送到 phone,这严重限制了 WatchKit 应用程序的活力。

或者,您可以将文字显示为图像循环。该代码允许您指定图像集更新的速度。因此,与其使用文本对象,不如构建一组图像,将其安装在手表上,然后循环显示它们。