__NSCFConstantString iOS 中的自定义 Activity _beforeActivity?

__NSCFConstantString _beforeActivity for Custom Activity in iOS?

我想分享图片,link 通过自己的应用程序,因为 activity 类型使用了 subclass UIActivity class 并使用了此操作方法代码

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

Error:-[__NSCFConstantString _beforeActivity]: unrecognized selector sent to instance 0x38f2b6b8

任何帮助将不胜感激。

问题出在这一行:

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

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

  1. 你不能在需要 UIActivity 的地方传递 NSString
  2. 为什么要在数组中指定标准活动,而您只应在其中提供特定于应用程序的活动?

将行更改为:

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

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

这行是错误的

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

-[__NSCFConstantString _beforeActivity]: unrecognized selector sent to instance 0x38f2b6b8 -- The error says you were passing the nil or String object in applicationActivities

UIActivity 需要一个 UIActivity 对象列表