提供的未知活动项目:(“<myclass:somehash =”“>”)</myclass:>

时间:2015-02-24 13:26:27

标签: ios objective-c uiactivityviewcontroller uiactivity

我正在使用UIActivityViewController的子类来显示自定义UIActivities。

当Controller显示时,我正在

Unknown activity items supplied: (
    "<MyClass: somehash>"
)

在我的日志中。

MyClass子类NSObject,并通过点击我的UIActivity传递给新的ViewController。

我试图在MyClass上实现协议UIActivityItemSource,但它没有解决问题。

MyClass对象作为 activityItems 参数在数组中传递给[UIActivityViewController init],它不应该是一个问题,正如文档所说:

  

要在其上执行活动的数据对象数组。数组中的对象类型是可变的,取决于应用程序管理的数据。例如,数据可能包含一个或多个表示当前所选内容的字符串或图像对象。

修改

这是我可以分享的代码:

MyClass *myDataObject = some data...

...

NSMutableArray *activityItems = [NSMutableArray arrayWithCapacity:3];
[activityItems addObject:NSLocalizedString(@"default_activity_message", nil)];
[activityItems addObject:someURL];
[activityItems addObject:myDataObject];

NSMutableArray *customActivities = [NSMutableArray arrayWithCapacity:1];
[customActivities addObject:[MyActivity new]];

MyActivityViewController *activityViewController = 
    [[MyActivityViewController alloc] initWithActivityItems:activityItems 
                                      applicationActivities:customActivities];

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

1 个答案:

答案 0 :(得分:0)

你应该继承UIActivity,而不是UIActivityViewController。然后传入applicationActivities: ...

中的子类
// Create activity view controller
UIActivityViewController* vc = [[UIActivityViewController alloc] initWithActivityItems:@[myDataItem] applicationActivities:@[myActivityAction]];