2015-10-20 64 views
0

我正在研究使用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之外调用。任何想法如何解决这个问题?请指教。非常感谢。

回答

0

问题是本地模块没有在主线程上运行。这就是为什么计时器不能在本地桥接类中工作的原因。

这个问题可以容易地使用主线程调用定时器功能被固定

@objc func doPostSignInRoutine(username: String, callback: RCTResponseSenderBlock) -> Void { 
    dispatch_async(dispatch_get_main_queue()) { 
     UploadXfdfManager.start() 
    } 
}