Ios DispatchQueue的Swift 3.0未解析标识符
我已经试着找到这个问题的答案好几个小时了,但还是没有用。我正在尝试使用以下代码:Ios DispatchQueue的Swift 3.0未解析标识符,ios,swift,swift3,grand-central-dispatch,Ios,Swift,Swift3,Grand Central Dispatch,我已经试着找到这个问题的答案好几个小时了,但还是没有用。我正在尝试使用以下代码: func fetchPosts() { ref.child("Amore").child("Posts").observeSingleEventOfType(.Value, withBlock: { (snapshot) in if let dictionary = snapshot.value as? [String: AnyObject] { let postMo
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()
}
})
}
在Swift 3.0.1中,但它表示“DispatchQueue”是一个未解析的标识符。我已导入Dispatch,并确保该类指向正确的目标文件。非常感谢您提供的任何帮助。尽管您说您正在使用Swift 3.0.1,但您没有。您正在使用Swift 2.3。因此,不存在DispatchQueue这样的东西。您的代码需要这样编写:
let delayTime = dispatch_time(DISPATCH_TIME_NOW, Int64(0.2 * Double(NSEC_PER_SEC)))
dispatch_after(delayTime, dispatch_get_main_queue()) {
self.tableView.reloadData()
}
最近,我编写的一个简单的swift脚本在Linux下运行时产生了这个错误。同样的脚本在macOS下运行良好
出于好奇,我在脚本顶部添加了一个“import Dispatch”,然后它就可以在Linux上正常运行了。现在将尝试。谢谢。@matt已经这样做了,但仍然给了我一个未解决的标识符错误。您在问题中发布的代码是您真实的、实际的代码吗?复制并粘贴的代码与您的问题中的代码完全相同吗?您的问题中可能没有出现您的真实代码中的打字错误。@rmaddy是的,是的。这个线程似乎有一个类似的问题,但这里没有一个解决方案,不幸的是,你链接到的另一个问题也是如此!有什么机会…?在大多数情况下,尝试使用Swift 2.3是没有意义的,因为它几乎已经被Swift 3.x淘汰了。OP最好只是将他们的2.3代码翻译成3.x,而不是相反。。就我个人而言,我发现上面的2.3答案有误导性/令人困惑,因为我最初认为这意味着我需要更改代码以远离DispatchQueue,而实际上,这应该是向DispatchQueue的方向移动,因为它是3.x特性。我的代码在Xcode中编译得很好。在Linux上,我还必须“导入分派”,这应该是本文的正确答案。Swift在Linux和Mac上的编译方式不同<代码>导入分派是合适的解决方案。