gpt4 book ai didi

objective-c - UITableViewCell 崩溃 didReceiveMemoryWarning

转载 作者:行者123 更新时间:2023-11-29 04:27:44 24 4
gpt4 key购买 nike

我有一个自定义 UITableViewCell,它扩展了 UITableViewCell 并实现 MFMailComposeViewControllerDelegate 。 (即 UITableViewCell<MFMailComposeViewControllerDelegate> )。

当单击自定义表格单元格中的按钮时,我会显示一个带有 presentModalViewController 的 mailController 。然后用户可以输入电子邮件或取消,一切正常。

但是当 didReceiveMemoryWarning在 mailController 存在时调用,然后当 mailController 关闭时,应用程序崩溃。我收到此错误:

"-[CustomCell respondsToSelector:]: message sent to deallocated instance 0xf4988b0"

现在我很确定它是因为拥有表单元格的 TableView 已被释放,因此单元格已被释放,但有人有任何建议来解决这个问题吗?我的意思是我想我可以将 MailCompose 委托(delegate)切换到表单元格的 TableView 的 View Controller ,但我不愿意。我宁愿将其保留在表格单元格中。有什么想法吗?

最佳答案

您不应使用 TableView 单元格作为 MFMailComposeViewControllerDelegate。由于单元格的性质及其重用,很难将特定实例固定为委托(delegate),尤其是正在显示单元格的 View Controller 之上的 View Controller 的委托(delegate),在这种特殊情况下,内存警告可能会导致单元格缓存的刷新。

MFMailComposeViewControllerDelegate 应该是单元格所在的 TableView 的委托(delegate)。这也是一种更好的 MVC 模式。

关于objective-c - UITableViewCell<MFMailComposeViewControllerDelegate> 崩溃 didReceiveMemoryWarning,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12098465/

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