我加載的UIImage從IOS文件目錄的數組:刪除文件contentsOfFile加載後
var images = [UIImage]()
for fileName in fileNames {
images.append(UIImage(contentsOfFile: "\(imagesPath)/\(fileName).png")!)
}
我將繼續使用該數組,但我不再需要的文件,所以我去進取,刪除它們:
for fileName in fileNames {
do {
try NSFileManager.defaultManager().removeItemAtPath("\(imagesPath)/\(fileName).png")
} catch {
print("Error")
}
}
當我這樣做,我的UIImage數組現在是無效的,並試圖訪問他們給我的錯誤。這不應該在內存中,並且不與磁盤上的文件相關嗎?
我試圖使用在圖像上的「.copy()」命令時,我加載它們但並沒有區別。
我已經證實,刪除高於因爲如果我註釋掉該行應用程序的偉大工程,沒有錯誤的問題。從磁盤中刪除文件後,我只會遇到訪問陣列的錯誤。
有沒有辦法切斷這種聯繫?
編輯:
var images = [UIImage]()
for fileName in fileNames {
let imgData = NSFileManager.defaultManager().contentsAtPath("\(imagesPath)/\(fileName).png")!
images.append(UIImage(data: imgData)!)
}
這樣做不會保留鏈接回到磁盤上的文件:%來自@Wain正確的答案,如果我將其更改爲代碼工作正常。尚未顯示
你可以只保存圖像文件,在應用程序的/ tmp文件夾,讓iOS的把它清理乾淨你 – Paulw11