Например, документация для UIActivityTypeAirDrop
состоянияКак мы узнаем, что делается с объектами данных, переданными в UIActivityViewController?
При использовании этой услуги, вы можете предоставить NSString, NSAttributedString, UIImage, ALAsset и объекты NSURL в качестве данных для элементов деятельности. Вы также можете указать объекты NSURL, содержимое которых использует схему активов-библиотек . Вы также можете предоставить объекты NSArray или NSDictionary , которые содержат перечисленные типы данных.
Но откуда мы знаем, что именно будет сделано с каждым из объектов данных? Нужно ли нам просто экспериментировать, чтобы узнать? То же самое для других типов UIActivity, ни один из них не говорит, что конкретно сделано с объектами.
На самом деле, при использовании UIActivityItemSource вам необходимо убедиться, что тип класса объекта, возвращаемый из метода метода placeholderItem, соответствует типу класса возвращаемого значения из itemForActivityType. Таким образом, вместо этого вы должны создать один объект UIActivityItemSource для каждого типа, который хотите поддерживать, а затем в зависимости от выбранного действия возвратите нуль в методе itemForActivityType. Просто убедитесь, что для любой выбранной активности хотя бы один из объектов UIActivityItemSource возвращает значение, отличное от нуля, в противном случае могут случиться плохие вещи. – ccjensen
Исправить. Хорошее дополнение. – Dima