React Native - 如果init类中的init类不工作,则Timer函数不工作
问题描述:
我正在研究使用React Native框架开发的iPhone应用程序。其中一些功能是使用Swift实现的,并由本地桥接类调用。React Native - 如果init类中的init类不工作,则Timer函数不工作
实用程序swift是桥类和调用上传队列类之一。上传队列将每30秒触发一次。
Utilities.swift:
@objc func doPostSignInRoutine(username: String, callback: RCTResponseSenderBlock) -> Void {
UploadXfdfManager.start()
}
UploadXfdfManager.swift:
func start() {
timer = NSTimer.scheduledTimerWithTimeInterval(self.scheduledTimer, target:self, selector: Selector("startUploadQueue"), userInfo: nil, repeats: true)
}
定时器功能 “startUploadQueue” 如果我调用Utilities.swift内的队列不解雇,但它完美如果队列在Utilities.swift之外调用。任何想法如何解决这个问题?请指教。非常感谢。
答
问题是本地模块没有在主线程上运行。这就是为什么计时器不能在本地桥接类中工作的原因。
这个问题可以容易地使用主线程调用定时器功能被固定
@objc func doPostSignInRoutine(username: String, callback: RCTResponseSenderBlock) -> Void {
dispatch_async(dispatch_get_main_queue()) {
UploadXfdfManager.start()
}
}