让两个不同的iPhone在同一时间运行代码

时间:2016-01-06 21:21:56

标签: ios iphone nsdate grand-central-dispatch

目前,应用程序包含此项 - 使用UIDatePicker设置触发时间,然后当此设置NSDate出现时,播放.mov文件。我最近尝试在4种不同的iOS设备上运行该应用程序并获得了非常可怕的结果。似乎每个设备都只是略微不同步,导致音乐听起来很尴尬。但是,我偶尔会在iPhone 6S和6S +之间进行试验,几乎完全同步。要在特定时间运行代码,我使用以下代码。

let now = NSDate()

let timeDelta = self.appDelegate.triggerDate.timeIntervalSinceDate(now)

let timeDeltaDouble = Double(timeDelta)

print(timeDeltaDouble)

self.delay(timeDeltaDouble) {

    self.player.play()

}

延迟的地方

func delay(delay:Double, closure:()->()) {
        dispatch_after(
            dispatch_time(
                DISPATCH_TIME_NOW,
                Int64(delay * Double(NSEC_PER_SEC))
            ),
            dispatch_get_main_queue(), closure)
}

考虑到我的结果不是很有希望,我假设有更好的方法来实现这种效果。希望了解更好的方法来实现这一目标!为什么这种方法没有成功。

编辑:此外,我确保当UIDatePicker返回日期为秒的日期设置为0时,以保持统一。

0 个答案:

没有答案