Обмен UIImage с UIActivityViewController Twitter/Facebook очень медленно отображает диалог

У меня есть изображение, которое я взял с камеры и сохранил в папке /tmp.

Когда я добавляю это изображение к элементам Activity UIActivityViewController, а затем нажимаю, чтобы поделиться с Twitter или Facebook, мне нужно подождать до 20 секунд, чтобы появилось диалоговое окно обмена.

Обратите внимание, что я имею в виду фактическое диалоговое окно "Post", которое появляется для Twitter/Facebook, а не собственное всплывающее окно общего ресурса, которое его порождает.

Когда я делюсь одним и тем же изображением из приложения "Фотографии", оно появляется мгновенно.

Сначала я думал, что приложение "Фотографии" изменяет размер изображения, поскольку более маленькое изображение появляется быстрее, но потом я обнаружил, что когда я делюсь тем же изображением напрямую в Twitter или Facebook с помощью SLComposeViewController, оно появляется (почти) мгновенно.

Предполагая, что это что-то, что я делаю неправильно в коде, вот что приводит к ледяному медленному появлению диалога:

NSArray *items = @[@"foo", [UIImage imageWithContentsOfFile:@"valid path to test image"]];

UIActivityViewController *vc = [[UIActivityViewController alloc]
        initWithActivityItems:items applicationActivities:nil];
[self presentViewController:vc animated:YES completion:nil];

Вот что работает почти мгновенно:

SLComposeViewController *controller = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter];
[controller setInitialText:@"foo"];
[controller addImage:[UIImage imageWithContentsOfFile:@"valid path to test image"]];
[self presentViewController:controller animated:YES completion:Nil];

Для чего бы то ни было, я также попытался исключить другие типы общих ресурсов (я читал, что в прошлом AirDrop вызывал проблемы), а также обернуть блок, чтобы убедиться, что я выполняюсь в главном потоке.

Я полагаю, я делаю что-то не так?

Если это не так, и эти два других метода на самом деле изменяют размер изображения, есть ли какая-то документация, по которой я скучаю, которая дает руководство относительно того, сколько нужно сделать для изменения размера?

** Редактировать: дополнительное тестирование, кажется, показывает, что эта проблема уникальна для iOS8, поскольку я не испытывал ее на более старом устройстве iOS7.

Спасибо

1 ответ

Мы также увидели задержку в 4–20 секунд, прежде чем появится диалоговое окно!
Я исправил это путем создания пользовательских UIActivity элементы для Twitter и Facebook, которые просто звонят SLComposeViewController внутри performActivity метод.

Кажется намного быстрее

Другие вопросы по тегам