2017-01-16 11 views
0

진행 상황을 인쇄 할 때 다운로드하는 파일의 진행보기를 표시하려고합니다. 그러나 진행보기에서 구현하면 완전히 잘못되었습니다. 3000으로갑니다. % 여기 내 코드입니다. 그것이 하나 무한 또는 때문에 UINT32로 변환 할 수없는 부동 소수점 값 : 여기 MBProgressHUD 사용이Firebase를 사용하여 다운로드 진행 상황을 보여주기 위해 UIProgressView를 연결합니다.

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

난이 오류 nanfatal 오류가 발생하고 코드입니다 때 나는 MHRadialProgressView

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 
} 

을 사용하고 있습니다 NaN의

답변

1

몇 가지 권장 사항 : 사용하지 마십시오

  • 이 라이브러리 (2014 년 이후로 업데이트되지 않음)는 MBProgressHUD을 사용하여 set a progress object and forget about it을 사용할 수 있습니다.
  • 여전히 원래 라이브러리를 사용하려면 "또는 순서가 지정되지 않은 프로그 램 (사용자 작업과 관련된 단계별로)) 설명서를 읽으십시오. 값". 즉, 현재 진행률과 이전 진행률을 비교하여 직접 증가 또는 감소시켜야합니다.
+0

위의 코드에서 MBProgressHUD를 사용할 때 위의 코드를 확인하십시오.이 오류가 발생합니다. 치명적 오류 : Float 값을 무한대 또는 NaN이기 때문에 UInt32로 변환 할 수 없습니다 – Khallad

+1

'hud.progressObject = snapshot.progress'가 아닌 이유를 설명 할 수 있습니까? 다른 모든 것들은 뒤얽힌 불필요한 것처럼 보입니다. –