Я пишу расширение для совместного использования, которое будет принимать изображения и выполнять с ними определенные действия.В методе моего UIViewController
подкласса я могу получить доступ к URL-адресам определенного представления файлов, написав это:
guard let context = self.extensionContext else {
return
}
guard let items = context.inputItems as? [NSExtensionItem] else {
return
}
for item in items {
guard let attachments = item.attachments else {
continue
}
for attachment in attachments {
guard attachment.hasItemConformingToTypeIdentifier("public.jpeg") else {
continue
}
attachment.loadFileRepresentation(forTypeIdentifier: "public.jpeg") { (url, error) in
if let url = url {
// How long is this "url" valid?
}
}
}
}
В блоке, который я передаю loadFileRepresentation(forTypeIdentifier:completionHandler:)
, мне дают URLв файл - в данном случае JPEG.Могу ли я предположить, что этот URL действителен?В частности, безопасно ли записывать сам URL в некоторую общую область хранения, чтобы мое приложение могло получить доступ к указанному файлу позже?Или я должен предположить, что URL является эфемерным и что, если я хочу получить доступ к файлу, на который он указывает, я должен сделать свою собственную копию этого файла в этом блоке?