我正在开发使用React Native框架开发的iPhone应用程序。一些函数是使用Swift实现的,并由本机桥类调用。
实用程序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之外调用队列,它将完美地工作。有关如何解决这个问题的任何想法?请指教。非常感谢。
答案 0 :(得分:0)
问题是本机模块没有在主线程上运行。这就是计时器在原生桥类中工作的原因。
使用调用计时器功能的主线程
可以轻松解决问题@objc func doPostSignInRoutine(username: String, callback: RCTResponseSenderBlock) -> Void {
dispatch_async(dispatch_get_main_queue()) {
UploadXfdfManager.start()
}
}