App尝试使用UIActivityViewController通过松弛共享信息时崩溃

时间:2017-11-16 21:32:49

标签: ios cocoa-touch slack uiactivityviewcontroller uiactivity

我正在使用UIActivityViewController来显示共享选项。我试图分享的信息包括两个部分(一个普通的字符串和一个网址)。该共享正在通过iMe​​ssages,Mail,Notes,Twitter,Facebook等所有扩展,但当我尝试通过Slack共享时,应用程序崩溃了。奇怪的是,只有在我没有调试时才会发生崩溃,并且在调试时它永远不会崩溃。

代码:

UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:@[title, self] applicationActivities:nil];
[self presentViewController:activityVC animated:YES completion:nil];

# UIActivityItemSource methods
- (id)activityViewControllerPlaceholderItem:(UIActivityViewController *)activityViewController {
    return url;
}

- (id)activityViewController:(UIActivityViewController *)activityViewController itemForActivityType:(NSString *)activityType {
    return url;
}

- (NSString*)activityViewController:(UIActivityViewController *)activityViewController subjectForActivityType:(NSString *)activityType {
    return title;
}

- (NSString *)activityViewController:(UIActivityViewController *)activityViewController dataTypeIdentifierForActivityType:(NSString *)activityType {
    return @"com.test.url";
}

- (UIImage *)activityViewController:(UIActivityViewController *)activityViewController thumbnailImageForActivityType:(NSString *)activityType suggestedSize:(CGSize)size {
    return image;
}

我也注意到这次崩溃发生在Flipboard应用程序上,它在Twitter应用程序上正常运行。

有没有人遇到过这个问题?如果是这样,请告诉我这是什么问题以及如何解决这个问题?

2 个答案:

答案 0 :(得分:4)

我最近遇到了同样的问题。当您在activityItems / initWithActivityItems数组中只有一个项目时,与Slack共享会崩溃,但如果您有更多,则会崩溃。我不知道您是否遇到了这个特定问题,但解决方法是将网址和文本合并到一个字符串对象中,如果这符合您的用例。看起来他们需要解决Slack的问题。

答案 1 :(得分:0)

这对我有用。为UIActivityItemSource创建了一个类。我没有将 self 传递给activityItems / initWithActivityItems数组,而是传递了itemSource。

library(dplyr)

themeans  <- df %>%
    group_by(Female.ID) %>%
    summarize(mean.relatedness = mean(relatedness, na.rm = T)