提供了未知的活动项目:(“”)

问题描述:

我使用UIActivityViewController的子类来显示自定义的UIActivities。提供了未知的活动项目:(“<MyClass:somehash>”)

控制器时表示,我得到

Unknown activity items supplied: (
    "<MyClass: somehash>" 
) 
在我的日志

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

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

MyClass的目的在阵列[UIActivityViewController INIT]通过如activityItems参数,并且它不应该是一个问题,因为文档仅供说:

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

编辑:

这是我的代码可以共享:

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]; 
+0

显示您的代码。 – Fogmeister 2015-02-24 13:31:13

+0

已编辑。请立即检查。 – 2015-02-24 15:10:51

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

// Create activity view controller 
UIActivityViewController* vc = [[UIActivityViewController alloc] initWithActivityItems:@[myDataItem] applicationActivities:@[myActivityAction]]; 
+0

是的,我正在那样做。我有我自己的UIActivityViewController,我将它传递给我的自定义UIAcitivities和数据对象。唯一的问题是数据对象是“未知”的。 – 2015-02-24 14:16:23