我正在向丰富的通知添加缩略图。我生成要用作附件的图像,如下所示:
let url = URL(fileURLWithPath: NSTemporaryDirectory(), isDirectory: true)
let fileURL = url.appendingPathComponent("someImageName", isDirectory: false).appendingPathExtension("png")
do{
try UIImagePNGRepresentation(image)?.write(to: fileURL)
}catch{
print("Could not write: ", error)
}
这是成功的。如果我现在运行这段代码:
let content = try? FileManager.default.contentsOfDirectory(atPath: NSTemporaryDirectory())
print(content ?? "error")
它打印出这个:["someImageName.png"]
。
然后我创建附件,如下所示:
let attachment = try? UNNotificationAttachment(identifier: "image", url: url, options: nil)
let content = UNMutableNotificationContent()
content.title = "Test"
content.attachments = [attachment!]
let request = UNNotificationRequest(identifier: "someID", content:content, trigger: /*someTrigger*/)
UNUserNotificationCenter.current().add(request, withCompletionHandler:...)
这一切都在工作。通知已发送,附件已附加。但是如果我现在打印出我的临时文件夹的内容,它是空的!我之前保存的图像已从此文件夹中删除。
经过大量的试验和错误,我发现在我添加通知的时候图像就被删除了。为什么我的通知会删除我的图像?我找不到任何关于此的文档!
如果我执行上述所有操作,但注释掉这一行://content.attachments = [attachment!]
,这意味着我存储的图像不会作为附件添加到我的通知中,那么我的图像不会从临时文件夹中删除!
这些文件在使用后是否被清理?还是在通知消失后我必须查看不同的文件夹并手动清理它们?我不希望我的应用程序创建数百张永远不会再次使用的图像,而无法删除它们..