gpt4 book ai didi

ios - 使用多个 UIActivityProvider 类时 Twitter 不存在

转载 作者:可可西里 更新时间:2023-11-01 06:15:50 24 4
gpt4 key购买 nike

我正在重构我的代码以使用 UIActivitiy 和 UIActivityProvider。我遇到了一个问题,即 Twitter 不再显示在 UIActivityViewController 中。

我发现如果我的多个 UIActivityProvider 类将 PlaceholderItem 分配给 UIImage 类对象,Twitter 将不会显示。似乎没有其他 Activity 受到该 Activity 不能使用的占位符类的影响。

对于上下文,这里是一些设置代码:

NSArray *applicationActivities = @[reviewActivity, myEmailActivity];
NSArray *excludeActivities = @[UIActivityTypeAssignToContact,
UIActivityTypePrint,
UIActivityTypeSaveToCameraRoll,
UIActivityTypePostToWeibo];

UIActivityItemProvider *screenshotProvider = [[ScreenshotActivityProvider alloc] initWithView :self.scrollView];
UIActivityItemProvider *textProvider = [[TextActivityProvider alloc] initWithExchangeDoc:self.docItem];
UIActivityItemProvider *imageProvider = [[ImageActivityProvider alloc] initWithExchangeDoc:self.docItem];
NSArray *activityItems = @[textProvider, screenshotProvider, imageProvider];
applicationActivities:applicationActivities];
UIActivityViewController *activityVC = [[UIActivityViewController alloc]initWithActivityItems:activityItems
applicationActivities:applicationActivities];

我正在使用的示例 UIActivityItemProvider 是:

- (id)initWithExchangeDoc :(ExchangeDoc *)docItem
{
self = [super initWithPlaceholderItem:[UIImage new]];
_docItem = docItem;
return self;
}

- (id)item
{
if ([self.activityType isEqualToString:UIActivityTypePostToTwitter]) {
return self.docItem.thumbImage;
} else {
return nil;
}
}

问题出在initWithPlaceholderItem上。我有另一个 UIActivityProvider,它将 UIImage 标识为占位符类。

我认为自定义项提供程序的目的是我的类可以决定在 UIActivityViewContrller 启动后提供哪些数据。就我而言,我的屏幕截图提供商不为 Twitter 提供任何内容。为什么 iOS 查看我的占位符并决定不将 Twitter 作为可行的 Activity 提供服务?我的提供者将根据事件类型挑选出谁可以提供图像。

文档是这样描述 placeholderItem 的:

An object that can stand in for the actual object you plan to create. The contents of the object may be empty but the class of the object must match the class of the object you plan to provide later.

显然,对于 Twitter,这对我不起作用。作为实验,我将所有 placeholderItems 更改为空的 NSStrings 和 Twitter,所有其他事件都运行良好。

有人知道这些 placeholderItems 的用途以及将它们设置为错误的类是否会产生任何负面影响?

抱歉,这太长了。感谢您的帮助。

最佳答案

事件会查看您提供的每种类型的数量。 Twitter 似乎每条推文只支持一张图片。因此,如果您将多个提供程序与图像占位符放在一起,而不是任意地为推文选择其中一张图像,事件 View Controller 根本不会显示推文。似乎您无法解决此问题,以根据 activityType 改变共享项目的数量或类型。

关于ios - 使用多个 UIActivityProvider 类时 Twitter 不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17323056/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com