我有一个问题,假设 A 和 B 是从 A 用户推送到 B 视图控制器的 2 个视图控制器,在 B 中,用户通过创建对象 C(这是 NSObject 类)开始一些下载并将 B 设置为 C(分配)的委托,现在用户想回到A然后B的dealloc调用对象释放,C委托无法回叫(崩溃)。我想得到调用并允许用户移动到其他视图控制器,这样我就可以在C类中保留委托但是保留代表是错误的......
what are all solutions ...
提前致谢。
我有一个问题,假设 A 和 B 是从 A 用户推送到 B 视图控制器的 2 个视图控制器,在 B 中,用户通过创建对象 C(这是 NSObject 类)开始一些下载并将 B 设置为 C(分配)的委托,现在用户想回到A然后B的dealloc调用对象释放,C委托无法回叫(崩溃)。我想得到调用并允许用户移动到其他视图控制器,这样我就可以在C类中保留委托但是保留代表是错误的......
what are all solutions ...
提前致谢。
我看到两个选项:
发生这种情况是因为您的架构中存在一个问题:您正在将后台下载的全局任务分配给可能在内存中也可能不在内存中的视图控制器。
如果您希望无论 B 是否存在都能够继续下载,那么:
NSNotification
代理而不是委托,这样多个对象可以同时监控。init
方法或 a @property
.