Расширение swift 3 share в первый раз ведет себя странно и в режиме отладки
У меня очень странное поведение с расширением общего ресурса, которое я пытаюсь реализовать. Мое приложение должно отправлять выбранное пользователем изображение на сервер для анализа. Пользователь выбирает одну фотографию и нажимает post
кнопку, чтобы отправить его.
Вот странное поведение, которое я имею:
Самый первый раз, когда я использую расширение общего доступа, оно не выходит за рамки
attachment.loadItem
вызов. Он даже не печатаетBefore error
, Затем, если я повторяю тот же рабочий процесс, он работает нормально.Если я использую отладчик XCode, я никогда не добьюсь ввода
attachment.loadItem
часть. Какое бы количество раз я не использовал расширение. Я могу повторить тест несколько раз, мое изображение никогда не отправляется на сервер и ниBefore error
,There is no error
, или жеThere is an error
напечатаны. Более того,attachment.loadItem
называется дважды.
У меня есть следующий код в didSelectPost
функция
override func didSelectPost() {
self.extensionContext!.completeRequest(returningItems: [], completionHandler: nil)
// Make sure we have a valid extension item
if let content = extensionContext!.inputItems[0] as? NSExtensionItem {
let contentType = kUTTypeImage as String
// Verify the provider is valid
if let contents = content.attachments as? [NSItemProvider] {
// Look for images
for attachment in contents {
print ("There is \(contents.count) attachments")
if attachment.hasItemConformingToTypeIdentifier(contentType) {
print ("I'm in the hasItemConforming part")
attachment.loadItem(forTypeIdentifier: contentType, options: nil) { data, error in
print ("Before error")
if error == nil {
print ("There is no error")
let url = data as! URL
self.sendToServer(localUrl: url)
} else {
print ("There is an error")
}
}
}
}
}
}
}
Если кто-то может помочь мне с этим, я буду очень благодарен. Большое спасибо за чтение и помощь.