2016-11-27 8 views
2

私は今この回答を何時間も見つけようとしていますが、まだ役に立たない。私は、次のコードを使用しようとしています:スウィフト3.0.1でDispatchQueueのSwift 3.0未解決の識別子

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() 
     } 
    }) 
} 

を、「DispatchQueueは」未解決の識別子であると言っています。私はDispatchをインポートし、そのクラスが正しいターゲットファイルを指していることを確認しました。すべての助けが大歓迎です。

+0

今すぐ試してみます。ありがとうございました。 –

+0

@mattがこれを行い、依然として私に未解決の識別子エラーを与えます –

+0

あなたの質問に投稿したコードはあなたの実際の実際のコードであり、コピーしてあなたの質問にそのまま貼り付けられていますか?あなたの質問には現れない、実際のコードに誤字があるかもしれません。 – rmaddy

答えて

0

と言ってもSwift 3.0.1を使用していますが、そうではありません。 Swift 2.3を使用しています。したがって、DispatchQueueのようなものはありません。あなたのコードは次のように書く必要があります:

+0

そしてまったく同じことがありますあなたがリンクしている他の質問の真実!チャンスは何ですか...? – matt

+0

ほとんどの場合、Swift 2.3を使用しようとしても意味がありません。Swift 3.xでかなり古くなったからです。 OPは2.3のコードを3.xに変換するほうが良いでしょう。他の方法ではありません。個人的に、上記の2.3の答えが誤解を招く/紛らわしいことがわかりました。最初はコードを変更する必要があった* DispatchQueueから* DispatchQueueに移動する必要がある場合、* DispatchQueueから* DispatchQueueに移動する必要があります。 – Gino

5

最近、私が書いた単純な迅速なスクリプトは、Linuxで実行したときにこのエラーを引き起こしていました。同じスクリプトがmacOSの下でうまくいきました。

好奇心の渦中に、私はスクリプトの先頭に「インポートディスパッチ」を追加し、Linux上で正常に動作しました。

+0

Xcode内でコードがコンパイルされていました。 Linuxでは私も "ディスパッチ"をインポートしなければならなかった – neoneye

+0

これはこの投稿の正解でなければなりません。 Swiftは、LinuxとMacで異なる方法でコンパイルされます。 'import Dispatch'は適切な解決策です。 –

関連する問題