2016-07-20 32 views
1

取得進步我上傳的圖片與此PICE代碼:從Facebook SDK GraphRequest與SWIFT

FBSDKGraphRequest(graphPath: "me/photos", parameters: params as [NSObject : AnyObject], HTTPMethod: "POST").startWithCompletionHandler({ (connection, result, error) -> Void in 

     if (error != nil) { 
      print ("failed") 
     } 
     else { 
      print ("success") 
     } 

    }) 

它工作正常,到目前爲止,但上傳可能需要一段時間,我想,以通知用戶現在的進展。有什麼方法可以獲得當前的進展?正如我在SDK文檔中看到的那樣,有一個FBSDKGraphRequestConnection,它提供了一個FBSDKGraphRequestConnectionDelegate,其進程內容爲requestConnection:didSendBodyData:totalBytesWritten:totalBytesExpectedToWrite:,但我無法理解,如何在我的小代碼中實現這些東西。任何人都可以幫忙嗎?

回答

1

我的其他人也有同樣的問題...谷歌沒有找到任何寫得很快的東西。 Here's我的工作液:

1)NSObjectFBSDKGraphRequestConnectionDelegate

2派生類)撰寫您上傳的過程是這樣的:

let uploadRequest = FBSDKGraphRequest(graphPath: "me/photos", parameters: params as [NSObject : AnyObject], HTTPMethod: "POST") 
    let connection = FBSDKGraphRequestConnection() 
    connection.delegate = self 
    connection.addRequest(uploadRequest, completionHandler: { 
     (connection, result, error) -> Void in 

     if (error != nil) { 
      // error handling 
     } 
     else { 
      // success handling 
     } 
    }) 
    connection.start() 

3)在你的類像這樣實現委託:

func requestConnection(connection:FBSDKGraphRequestConnection, didSendBodyData bytesWritten:NSInteger, totalBytesWritten:NSInteger, totalBytesExpectedToWrite:NSInteger) { 
    print("upload percent reached: " + String(Double(totalBytesWritten)/Double(totalBytesExpectedToWrite))) 

    // handle your UI here to show the current status 
} 
相關問題