我將AVMutableComposition
視頻導出到臨時位置,然後成功將其傳輸到相機膠捲中。在出口,我的主線程上檢查是否存儲爲let videoPath
返回的相機膠捲URL與存在:文件存在於主線程中,但後臺線程表示它不存在(iOS)
if FileManager.default.fileExists(atPath: videoPath) {
print("FILE AVAILABLE")
} else {
print("FILE NOT AVAILABLE")
}
它。所以我把它放在AVPlayer
,它玩的很好。於是我想將它上傳到我的Web服務器,所以我投的同一網址爲Data
對象的內容在後臺線程我運行相同的FileManager.default.fileExists
這個時候才這樣做的控制檯說FILE NOT AVAILABLE
這顯然使得Data
嘗試構造函數失敗。
之前調用後臺線程功能,我甚至在主線程上檢查文件是否存在,並它但隨後在後臺它說它不。
現在什麼是最奇怪的部分,爲什麼我來到SO是因爲在這個初始文件檢查失敗後,我移動到另一個視圖,它可以運行相同的後臺功能,並在第二次(第一次後的所有後續時間失敗)控制檯顯示FILE AVAILABLE
並做它的事情。
這是怎麼回事?
Tripple check'videoPath'對於所有呼叫都是相同的。 – shallowThought
@shallowThought我只是把url打印到控制檯,它們確實是一樣的 – simplexity
線程考慮事項 - 可以安全地從多個線程調用共享FileManager對象的方法。但是,如果使用委託來接收有關移動,複製,刪除和鏈接操作狀態的通知,則應創建文件管理器對象的唯一實例,將委託指定給該對象,然後使用該文件管理器啓動你的操作。 –