2017-10-04 16 views
0

サーバからデータをロードしないでください。エラー=(エラー?)なしなし。エラーが発生する前に、pfobjects 4の値が表示されます。そして、ラインを指す - "detailPrognozS =オブジェクト[" detailPrognozS "]を!String"としましょう。何が間違っているか教えてください。error =(エラー?)なしなしSwift Parse

+0

あなたは 'オブジェクト[ "detailPrognozSを"]'アンラップ力です。サーバーからのペイロードに 'detailPrognozS'が含まれていないと、アプリがクラッシュします。 – Wukerplank

答えて

0

少し具体的にできますか。起こっていることは、バックグラウンドでデータを取得しようとしているときに、次のループが実行され、データを返すチャンスが与えられないということです。

このコードを実際にクリーンアップしてください。ネットワークコール内にuilabelsテキストを設定すべきではないことは、オブジェクトとエラーステータスまたはnilを持つ補完ハンドラを返すことだけです。私はこれが役立つと思ういくつかのMVCパターンを見てください。短期的な修正は、「let dispatchGroup = DispatchGroup()」を追加して、出入りするときに設定することです。お役に立てれば。

https://developer.apple.com/documentation/dispatch/dispatchgroup https://www.raywenderlich.com/160651/design-patterns-ios-using-swift-part-12

+0

ありがとうございます。しかし、私はサイクルfindObjectsInBackgroundに接続してエラーが発生しました –

+0

はい、オブジェクトに取得したデータをマッピングするためのエラーメッセージも必要です。間違ったキーを入力するとどうなりますか? –

+0

助けていただきありがとうございます。私は自分自身の間違いを発見しました。私の回答を評価してください。書き直してください。 –

0
let query = PFQuery(className: "soccer") 
      query.findObjectsInBackground { (objects: [PFObject]?, error) -> Void in 
       if error == nil { 
        for object in objects! { 



         self.prognozDetail.text = object["detailPrognozS"] as? String 
         self.textView.text = object["detailTextS"] as? String 
         self.titleDetail.text = object["detailTitleS"] as? String 
         let imageDetail = object["detailImageS"] as? PFFile 


         imageDetail?.getDataInBackground(block: { (data:Data?, error:Error?) in 
          if error == nil { 

            if let imageData = data { 

             self.imageDetail.image = UIImage(data: imageData) 

             } 

          } 

         }) 
        } 
       } 
      } 
関連する問題