OGeek|极客世界-中国程序员成长平台

标题: iOS:如何处理已发布的委托(delegate) [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 16:45
标题: iOS:如何处理已发布的委托(delegate)

我有一个对象用作 View Controller 和 Web 服务之间的连接层。该对象接受一个委托(delegate),并在从服务器返回数据时通知该委托(delegate)。我遇到了一个问题,即委托(delegate)在 http 请求运行时被释放。当请求返回时,我的对象尝试调用委托(delegate)上的方法并且应用程序崩溃。

处理此问题的最佳方法是什么。我在几个地方读到过你不应该保留你的委托(delegate),因为他们也经常保留对象,导致循环依赖。所以如果我不能保留我的委托(delegate),我如何在调用它的方法之前检查它是否已被释放?

@property (nonatomic, assign) NSObject<ServerConnectionDelegate>* delegate;



Best Answer-推荐答案


如果委托(delegate)的生命周期比工作对象的生命周期长,通常你应该使用委托(delegate)模式。 (抱歉,这里的术语不正确)。

你有几个选项来解决这个问题:

关于iOS:如何处理已发布的委托(delegate),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12733742/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://jike.in/) Powered by Discuz! X3.4