__NSCFConstantString _beforeActivity为iOS中的自定义活动?

时间:2016-02-11 15:04:05

标签: ios objective-c uiactivityviewcontroller

我想分享图片,通过自己的app链接作为活动类型使用子类UIActivity类并使用此动作方法代码

  NSString *message = [NSString stringWithFormat:@"%@\n",[self.dataModel artLook_Title]];
    UIImage *imageToShare =self.profileImageView.image; //[UIImage imageNamed:@"test.jpg"];
    if (self.tinyURL==nil) {
        [self initilizeTinyURL];
    }
     NSArray *items = @[message,[self tinyURL],imageToShare];//
    NSArray *activities = @[[self customActivity],UIActivityTypePostToFacebook,UIActivityTypePostToTwitter];
    UIActivityViewController *controller = [[UIActivityViewController alloc]initWithActivityItems:items applicationActivities:activities];
    [self presentViewController:controller animated:YES completion:nil];

我在

崩溃
[self presentViewController:controller animated:YES completion:nil];
  

错误: - [__ NSCFConstantString _beforeActivity]:无法识别的选择器   发送到实例0x38f2b6b8

任何帮助都会受到赞赏。

2 个答案:

答案 0 :(得分:1)

问题在于这一行:

NSArray *activities = @[[self customActivity],UIActivityTypePostToFacebook,UIActivityTypePostToTwitter];

您正在传递自己的自定义活动(好)和标准活动的两个字符串常量(错误)。

  1. 您无法通过NSString预计UIActivity的位置。
  2. 为什么要在数组中指定标准活动,您应该只提供针对特定应用的活动?
  3. 将行更改为:

    NSArray *activities = @[[self customActivity]];
    

    如果您的目标是仅显示某些活动,请使用excludedActivityTypes属性列出您不想要的标准活动。这是您使用标准UIActivityTypeXXX常量的地方。

答案 1 :(得分:1)

这一行是错误

 NSArray *activities = @[[self customActivity],UIActivityTypePostToFacebook,UIActivityTypePostToTwitter];
  

- [__ NSCFConstantString _beforeActivity]:发送到实例0x38f2b6b8的无法识别的选择器 - 错误表示您在applicationActivities

中传递了nil或String对象

UIActivity需要一个UIActivity对象列表