ios - 为什么保留委托(delegate)是错误的所有替代方案......?

标签 ios objective-c cocoa-touch delegates retain-cycle

我有一个问题,假设 A 和 B 是 2 个 View Controller ,从 A 用户推送到 B View Controller ,在 B 中,用户通过创建对象 C(这是 NSObject 类)开始一些下载,并将 B 设置为委托(delegate)给 C(分配),现在用户想要返回 A,然后 B 的 dealloc 调用对象释放,C 委托(delegate)无法回叫(崩溃)。我想接到电话并允许用户移动到其他 View Controller ,这就是我保留委托(delegate)的方式C 类但委托(delegate)的保留是错误的...

what are all solutions ...

提前致谢。

最佳答案

我看到两个选项:

  1. 您不需要下载的数据。解决方案:将委托(delegate)设置为 nil。
  2. 您需要数据。解决方案:您要么设置一个存在的新委托(delegate),要么该委托(delegate)应​​确保它存在(例如作为单例)

关于ios - 为什么保留委托(delegate)是错误的所有替代方案......?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2927432/

相关文章:

ios - 在 TableView 单元格中显示来自 Firebase 的数据

c++ - OpenGL 显示空白屏幕。也许是由于着色器?

ios - 在 IOS 中从蜂窝网络获取纬度和经度

ios - 我如何从 xib 创建自定义 uiview

ios - Firebase 消息传递仅适用于前台

ios - containsString:是否足够快,足以在每次输入字符时用于搜索?

ios - 如何在 iPhone 上实现自定义键盘弹出

ios - 使用矢量图像集时如何避免自定义 UIButton 中的图像扭曲和拉伸(stretch)?

objective-c - Ocaml链接错误objective-c( cocoa )

swift - 用于在管道结果时链接异步操作的 GCD 模式