我正在将AVMutableComposition
视频导出到临时位置,然后成功将其传输到相机胶卷。导出后,如果存储为let videoPath
的返回的相机胶卷URL存在,则检查主线程:
if FileManager.default.fileExists(atPath: videoPath) {
print("FILE AVAILABLE")
} else {
print("FILE NOT AVAILABLE")
}
确实如此。所以我把它放在一个AVPlayer
中,它一切都很好。那么我想将它上传到我的网络服务器,所以我在后台线程中投射与Data
对象的内容相同的URL,然后在运行之前我运行相同的{{1}这次控制台说FileManager.default.fileExists
显然使FILE NOT AVAILABLE
尝试构造函数失败。
在调用后台线程函数之前,我甚至检查主线程文件是否存在且它确实但是在后台它显示它不。< / p>
现在最奇怪的部分是什么,为什么我来到SO是因为在这个初始文件检查失败后,我移动到另一个视图,它可以运行相同的后台功能,并在第二次(第一次失败后的所有后续时间) )控制台显示Data
并执行其操作。
这里发生了什么?
答案 0 :(得分:0)
好的,如果有其他人有这个问题,我通过以下方式解决了这个问题:
我没有检查videoPath
并在后台线程中创建Data
对象(并冒着因为我之外的原因而无法检测到它的风险),而是创建了{{1}导出主线程上的对象,只需将创建的Data
对象传递给函数进行上传。简单而且照顾好了问题!
有时最好的解决方案不是弄清楚系统,而是要击败它。