共享UIImage到UIActivityViewController Twitter/Facebook显示对话非常慢

Jas*_*son 6 objective-c ios slcomposeviewcontroller uiactivityviewcontroller

我有一张从相机中取出的图像并保存到/ tmp文件夹中.

当我将此图像添加到UIActivityViewController的activityItems,然后按下与Twitter或Facebook共享时,我必须等待最多20秒才能显示共享对话框.

请注意,我指的是为Twitter/Facebook显示的实际"发布"对话框,而不是生成它的本机共享弹出窗口.

当我从照片应用程序共享相同的图像时,它会立即显示.

起初我认为照片应用程序正在调整图像大小,因为较小的图像显得更快,但我发现当我使用SLComposeViewController直接将相同的图像分享到Twitter或Facebook时,它(几乎)立即出现.

假设我在代码中做错了,这就是导致冰冷的对话框出现的原因:

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];
Run Code Online (Sandbox Code Playgroud)

这几乎是立即起作用的:

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

为了它的价值,我也尝试排除其他共享类型(我读过去AirDrop引起的问题),以及包装块以确保我在主线程上执行.

我想我做错了什么?

如果我不是,并且这两个其他方法实际上正在调整图像大小,是否有一些我缺少的文档提供了关于调整大小的指导?

**编辑:额外的测试似乎表明这个问题是iOS8独有的,因为我没有在较旧的iOS7设备上体验过它.

谢谢

Pav*_*eev 1

我们还看到共享对话框出现之前有 4\xe2\x80\x9320 秒的延迟!。
\n我通过为 Twitter 和 Facebook 创建自定义项目来修复这个UIActivity问题,只需调用SLComposeViewController内部performActivity方法。

\n\n

看起来快得多。

\n