2017-01-16 1 views
0

進捗状況を印刷したときにダウンロードしたファイルの進行状況を表示しようとしていますが、 %ここに私のコードです。私はここでMBProgressHUDを使用したとき、私はMHRadialProgressViewFirebaseを使用してダウンロードの進行状況を表示するためにUIProgressViewをリンクする

downloadTask.observe(.progress) { (snapshot) -> Void in 
    // Download reported progress 

    let percentComplete = 100 * Double(snapshot.progress!.completedUnitCount)/Double(snapshot.progress!.totalUnitCount) 
    print("percentComplete") 
    self.progressView.moveNext(currentprogress as NSNumber!) 

    // Update the progress indicator 
} 

を使用しています私は、このエラーに nanfatalエラーを取得しています、それ

downloadTask.observe(.progress) { (snapshot) -> Void in 
       // Download reported progress  
       let percentComplete = 100 * Float(snapshot.progress!.completedUnitCount) 
        /Float(snapshot.progress!.totalUnitCount) 

      let hud = MBProgressHUD.showAdded(to: (self.navigationController?.view)!, animated: true) 
      // Set the determinate mode to show task progress. 
      hud.mode = MBProgressHUDMode.determinate 

      hud.label.text = NSLocalizedString("Loading...", comment: "HUD loading title") 
      // Set up NSProgress 
      let progressObject = Progress(totalUnitCount: 100) 
      hud.progressObject = progressObject 
      // Configure a cancel button. 


      DispatchQueue.global(qos: .default).async(execute: {() -> Void in 
       // Do something useful in the background and update the HUD periodically. 

       while progressObject.fractionCompleted < 1.0 { 

        progressObject.becomeCurrent(withPendingUnitCount: 1) 
        progressObject.resignCurrent() 
        usleep(useconds_t(percentComplete)) 
       } 

       DispatchQueue.main.async(execute: {() -> Void in 
        hud.hide(animated: true) 
       }) 
      }) 
     } 

ためのコードです:それは無限かのどちらかであるため、Float値がUInt32型に変換できませんNaNの

答えて

1

いくつかの提言:

  • 使用しないでください。このライブラリ(2014年以降に更新されていません)は、MBProgressHUDを使用してください。set a progress object and forget about itが可能です。
  • 元のライブラリを使用したい場合は、ドキュメントまたは「順序付けられていないプログラム」(多くの場合、ユーザーアクションに関連付けられた手順で)を参照してください。値"。これは、現在の進捗状況と前回の進捗状況を比較し、それを自分で増減させる必要があることを意味します。
+0

私はMBProgressHUDを使用したときに上記のコードを確認してください。このエラーが発生しています。ナノ致命的なエラー:Float値は無限大またはNaNのいずれかであるため、UInt32に変換することはできません – Khallad

+1

「hud.progressObject = snapshot.progress'」という理由だけを説明できますか?他のすべては複雑で不必要なようです。 –

関連する問題