Обмен 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
метод.
Кажется намного быстрее