私はviewcontrollerからfirebaseにメディアをアップロードします&私のサーバにメディアのURLをAPIコールとして送信します。画像をアップロードするには&コールAPI私はseprate class.Thereを作成しました。私はURLをreciveとき、私は自分のサーバーに保存されてfirebase & URLにメディアをアップロードしたらすぐに閉鎖でコールバックを受け取ることができませんか?
OfflineSyncクラス関数
func UploadMediaToFireBase(sucess:@escaping()->(),failure:@escaping (DIError)->()) {
DIFirebaseImageManager.firebaseInstance.uploadImage(data: data, withName: filepath, mimeType: mimeType, progress: { (progress)
in
}) { (callback, firebaseUrl, error) in
if let url = firebaseUrl {
self.uploadplace(place: self.place, done: {
sucess()
Utility.shared.hideLoader()
}, failed: { (result) in
failure(result)
Utility.shared.hideLoader()
})
}
}
}
は、今私は、私は、コールバックを送信
func uploadplace(place:place,done:@escaping()->(),failed:@escaping (DIError)->()) {
if let placeId = place.id {
placeManager.shared.editplace(placeId: placeId, place: place, success: { (success) in
AlertBar.show(.success, message: AppMessages.place.placeEdited)
done()
}, failure: { (failure) in
self.status = .cancelled
failed(failure)
})
}
}
でこの関数を呼び出します私のコントローラに以下のコードで
OfflineSync.shared.UploadMediaToFireBase(sucess: {
DILog.print(items: "CallBack to MediaController")
self.navigationController?.popViewController(animated: true)
}, failure: { (failure) in
})
}
しかし、問題は私のコントローラへのコールバックを得ることは決してありません。私はのコールバックをuplaodmediatofirebase
function.Butに持っています。私はcontrollrer.にコールバックを取得しません。
は失敗 'の値であり、どのようなメインスレッド – Techiee
のメソッドを追加しました「失敗」:{(失敗)? –
そして、 'editplace'のコードを表示して、おそらく問題を抱えています。 –