2013-09-23 3 views
0

Например, документация для UIActivityTypeAirDrop состоянияКак мы узнаем, что делается с объектами данных, переданными в UIActivityViewController?

При использовании этой услуги, вы можете предоставить NSString, NSAttributedString, UIImage, ALAsset и объекты NSURL в качестве данных для элементов деятельности. Вы также можете указать объекты NSURL, содержимое которых использует схему активов-библиотек . Вы также можете предоставить объекты NSArray или NSDictionary , которые содержат перечисленные типы данных.

Но откуда мы знаем, что именно будет сделано с каждым из объектов данных? Нужно ли нам просто экспериментировать, чтобы узнать? То же самое для других типов UIActivity, ни один из них не говорит, что конкретно сделано с объектами.

ответ

0

К сожалению, документация для этого контроллера не является настолько всеобъемлющей, и на ней не так много деталей. Экспериментирование - это в значительной степени то, что я закончил. Некоторые из них - здравый смысл, например, «Сохранить в Camera Roll», требующий объекта изображения. Большинство других попытаются использовать все, что вы им даете (URL, текст, изображение и т. Д.).

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

+1

На самом деле, при использовании UIActivityItemSource вам необходимо убедиться, что тип класса объекта, возвращаемый из метода метода placeholderItem, соответствует типу класса возвращаемого значения из itemForActivityType. Таким образом, вместо этого вы должны создать один объект UIActivityItemSource для каждого типа, который хотите поддерживать, а затем в зависимости от выбранного действия возвратите нуль в методе itemForActivityType. Просто убедитесь, что для любой выбранной активности хотя бы один из объектов UIActivityItemSource возвращает значение, отличное от нуля, в противном случае могут случиться плохие вещи. – ccjensen

+0

Исправить. Хорошее дополнение. – Dima