Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/97.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios DispatchQueue的Swift 3.0未解析标识符_Ios_Swift_Swift3_Grand Central Dispatch - Fatal编程技术网

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上的编译方式不同<代码>导入分派是合适的解决方案。