Сообщение об ошибке Airdrop: "не удается получить все эти элементы одновременно"

Я использую следующий код для совместного использования изображения, некоторого текста и url-адреса с помощью UIActivityViewController. Все работает нормально, за исключением того, что когда использование выбирает AirDrop, он получает "не может получить все эти элементы одновременно". Если я только разделяю изображение, то AirDrop работает. Мне нужен текст и url для электронной почты, Facebook, twitter методов обмена.

есть ли способ сохранить текст и URL и сделать AirDrop только поделиться изображением, в то время как Facebook, электронная почта, twitter методы обмена продолжать использовать текст и url вместе с изображением, которое я пытаюсь поделиться?

NSString *text = [NSString stringWithFormat:@"I made this image using %@ iOS app. Here is the link to download it:", [CloudHelper appName]];
NSURL *url = [NSURL URLWithString:APP_URL];    

UIActivityViewController *activityController =
[[UIActivityViewController alloc]
 initWithActivityItems:@[text, url, myImage]
 applicationActivities:nil];

[self presentViewController:activityController animated:YES completion:nil];

1 ответов


вы хотите создать и поделиться тремя объектами, которые соответствуют UIActivityItemSource, где один возвращает строку, один изображение и один URL. Затем, когда вызывается обратный вызов делегата, запрашивающий элемент, вы проверяете, какой тип активности был выбран (Facebook, Twitter, airdrop и т. д.), и имеете некоторый возвращаемый ноль, если этот элемент не применяется.

таким образом, в случае airdrop только источник элемента для изображения вернет значение без нуля. Вы можете взглянуть на образец кода airdrop чтобы получить некоторые примеры того, как реализовать UIActivityItemSource