首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >UIActivityViewController在取消iPhone iOS8时崩溃

UIActivityViewController在取消iPhone iOS8时崩溃
EN

Stack Overflow用户
提问于 2015-08-29 15:22:18
回答 2查看 411关注 0票数 1

我正在使用我的activityViewController中的这一行代码来显示ViewController

[MyClass showShareMenuWithString:@"test string" sender:self];

这是这个方法在MyClass中的声明

代码语言:javascript
运行
复制
+ (void)showShareMenuWithString:(NSString*)text sender:(id)sender{
    NSArray* array = [NSArray arrayWithObject:[NSString stringWithFormat:@"%@",text]];
    UIActivityViewController *activityView = [[UIActivityViewController alloc] initWithActivityItems:array applicationActivities:nil];

    [sender presentViewController:activityView animated:YES completion:nil];

}

在此之后,activityView出现在屏幕上,可以选择一些操作,如发送短信或电子邮件等。在选择其中一个操作后,邮件控制器的SMS将显示在屏幕上,并带有预先填充的数据。但是在取消了这个控制器之后,我的应用程序出现了EXC_BAD_ACCESS错误。这种情况是随机发生的,这种控制器很有可能在没有崩溃的情况下消失。应用程序仅为iPhone,并且数组不是零。

该应用程序没有在iOS7上崩溃。在iPhones上用不同的iOS 7/8进行了测试。有人也有同样的问题吗?有什么发现吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-08-30 09:17:04

多亏了@Y.Bonafons

在弹出之后,我没有在以前的控制器中将我的代表设置为0,这就是为什么它试图调用它的方法。

启用僵尸对象对我有很大帮助。

票数 0
EN

Stack Overflow用户

发布于 2019-03-16 21:10:49

另一个可能与UIActivityViewController崩溃相关的问题可能是意外发现为零,而展开一个可选值。

在分配用作在Action扩展将控件返回应用程序时执行的完成处理程序的闭包中,请确保在使用它之前检查可选项。

例如,使用可选绑定来确定可选returnedItems是否包含一个值(天真代码):

代码语言:javascript
运行
复制
activityViewController.completionWithItemsHandler =
            { (activityType, completed, returnedItems, error) in

    if let a = returnedItems {
                    ...
                } else {
                    return
                }
...

这只是一种尝试的方法,但你肯定可以写得更好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32287605

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档