will cohen will cohen - 7 days ago 6
Swift Question

Swift 3.0 unresolved identifier for DispatchQueue

I have been trying to find the answer to this for hours now but still no avail. I am trying to use the following code:

func fetchPosts() {
ref.child("Amore").child("Posts").observeSingleEventOfType(.Value, withBlock: { (snapshot) in
if let dictionary = snapshot.value as? [String: AnyObject] {
let postMod = ReviewsPostModel()

postMod.setValuesForKeysWithDictionary(dictionary)
self.posts.insert(postMod, atIndex: 0)
}

DispatchQueue.main.asyncAfter(deadline: .now() + 0.2) {
self.tableView.reloadData()
}
})
}


In Swift 3.0.1, but it is saying that "DispatchQueue" is an unresolved identifier. I have imported Dispatch, and made sure that the class was pointed at the right target file. Any and all help is greatly appreciated.

Answer

Although you say you are using Swift 3.0.1, you are not. You are using Swift 2.3. Thus, there is no such thing as DispatchQueue. Your code needs to be written like this:

let delayTime = dispatch_time(DISPATCH_TIME_NOW, Int64(0.2 * Double(NSEC_PER_SEC)))
dispatch_after(delayTime, dispatch_get_main_queue()) {
    self.tableView.reloadData()
}
Comments