tbergq tbergq - 3 months ago 34
iOS Question

Run swift code on main thread in react-native

I am trying to make a react-native app cast to chromecast. The chromecast GCKDeviceScanner has to run on the main thread.

The react native page says to run on main thread you have to do this:



- (dispatch_queue_t)methodQueue
{
return dispatch_get_main_queue();
}





I am not very familiar with swift or ios, so where do I put this code, and how do I use it? I have my method:



let filterCriteria = GCKFilterCriteria(forAvailableApplicationWithID: "myApp")

let deviceScanner = GCKDeviceScanner(filterCriteria: filterCriteria)
if let deviceScanner = deviceScanner {
deviceScanner.addListener(self)
deviceScanner.startScan()
deviceScanner.passiveScan = true
}





Any idea on how I can run my code on the main thread?

hnh hnh
Answer

To run that code section in the main thread, you can do this:

dispatch_async(dispatch_get_main_queue()) {
  let filterCriteria = GCKFilterCriteria(forAvailableApplicationWithID: "myApp")

  let deviceScanner = GCKDeviceScanner(filterCriteria: filterCriteria)
  if let deviceScanner = deviceScanner {
    deviceScanner.addListener(self)
    deviceScanner.startScan()
    deviceScanner.passiveScan = true
  }
}