Я пытаюсь сделать кнопку обмена, которая делится изображением. К сожалению, когда я выбираю IMessage / Facebook / Messenger во всплывающем окне, я получаю «[] фатальная ошибка: при развертывании необязательного значения неожиданно обнаружен ноль».

Отправка в Notes / AirDrop / Mail работает отлично

@IBAction func share(){

    let activityController = UIActivityViewController(activityItems: ["test"], applicationActivities: nil)

    self.present(activityController, animated: true, completion: nil)   
}
0
Jarosław Krajewski 26 Ноя 2016 в 04:47

2 ответа

Лучший ответ

Когда я обнаружил, что новейший Xcode, который я скачал несколько дней назад, перестал печатать всю трассировку стека в консоли. Я принял стек по истории стека на интерфейсе и обнаружил, что ошибка была вызвана тем, что у меня был scrollView, который переместился в текстовое поле на случай, если клавиатура сделает это поле невидимым, у которого была строка;

let superView = selectedTextField.superview!
doSomething()

Я изменил это на:

if let superView = selectedTextField.superview {
     doSomething()
}
0
Jarosław Krajewski 26 Ноя 2016 в 18:40

Если вы используете это на iPad, вы также должны указать как popoverPresentationController. Добавьте эту строку перед тем, как представить activityController.

activityController.popoverPresentationController?.sourceView = self.view // so that iPads won't crash
0
TheValyreanGroup 26 Ноя 2016 в 01:57