Я новичок в iOS 11 Функция перетаскивания. Я знаю, как загрузить определенный тип объекта, когда он упал из вида, который может принять этот тип объекта. Однако перед вызовом loadObject(ofClass:completionHandler:)
я хочу узнать значения, которые содержит выпавший предмет.
В моем методе делегата dropInteraction(_:performDrop:)
, когда я пытаюсь получить описание объекта itemProvider, я получаю только тип-
func dropInteraction(_ interaction: UIDropInteraction, performDrop session: UIDropSession) {
if let itemProvider = session.items.last?.itemProvider{
print("item provider \(itemProvider.description)")
}
}
Когда я сбрасывал изображение из сафари, вышеприведенный код напечатал-
item provider <UIItemProvider: 0x600000c43640> {types = (
"public.jpeg",
"public.url"
)}
Здесь я не вижу значения URL. Если я хочу получить значение URL, я должен сделать-
func dropInteraction(_ interaction: UIDropInteraction, performDrop session: UIDropSession) {
session.items.last?.itemProvider.loadObject(ofClass: URL.self, completionHandler: { itemProvider, err in
if let urlItemProvider = itemProvider{
print("url = \(urlItemProvider.absoluteString)")
}
})
}
Обычно, когда изображение отбрасывается, я хочу сохранить связанный с ним URL-адрес и подробную информацию об изображении в пользовательском классе, прежде чем пытаться загрузить его. Любая помощь будет оценена.