gpt4 book ai didi

iOS 应用程序在单击按钮时崩溃

转载 作者:行者123 更新时间:2023-11-28 19:59:50 25 4
gpt4 key购买 nike

我正在开发一个允许用户拍照并通过邮件发送的应用程序(xcode 版本 5.1.1)。邮件发送后,弹出确认信息:

   - (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error{
switch (result)
{
case MFMailComposeResultCancelled:
[[[UIAlertView alloc]initWithTitle:@"Message Cancelled" message:nil delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil]show];
break;
case MFMailComposeResultSent:
[[[UIAlertView alloc]initWithTitle:@"Message Sent" message:@"Thank you for your help." delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil]show]; break;
default:
break;
}
[self dismissViewControllerAnimated:NO completion:nil];
}

在模拟器中单击“确定”后,Xcode 会突出显示 main.m 文件中的代码,其中包含“线程 1:信号 SIGABRT”:

int main(int argc, char * argv[])
{
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}

当我在 iPhone 上测试该应用程序时,同样的情况是,它会在单击“确定”时崩溃。

你知道如何解决这个问题吗?

非常感谢您的帮助和建议

最佳答案

问题很可能是由于您将警报 View 的 delegate 设置为 self 然后关闭 self 引起的。然后当您在警报 View 上点击确定时,它会尝试访问其委托(delegate),但委托(delegate)已被解雇,因此应用程序崩溃。

有两个修复:

  1. 在创建警报 View 时将nil 传递给delegate 参数。您无需处理任何警报 View 操作。
  2. 解散邮件 Controller 时,按如下方式进行:

代码:

[controller dismissViewControllerAnimated:YES completion:nil];

关于iOS 应用程序在单击按钮时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24702287/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com