【发布时间】:2017-07-10 08:39:14
【问题描述】:
我有视图控制器,我从那里将媒体上传到 firebase 并将媒体的 url 作为 API 调用发送到我的服务器。现在,为了上传图像和调用 API,我创建了单独的类。我创建了一个函数来完成上传工作。
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()
})
}
}
}
现在,当我收到 url 时,我会在
中调用此函数 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)
})
}
}
一旦我在 firebase 上上传媒体并保存在我的服务器上的 url,然后我将回调发送到我的控制器,如下代码
OfflineSync.shared.UploadMediaToFireBase(sucess: {
DILog.print(items: "CallBack to MediaController")
self.navigationController?.popViewController(animated: true)
}, failure: { (failure) in
})
}
但问题是我从来没有收到任何回调到我的控制器。我收到了 uplaodplace 到 uplaodmediatofirebase 函数的回调。但是我从来没有收到我的控制器的回调。请告诉我可能是什么问题?
【问题讨论】:
标签: ios swift xcode callback closures