gpt4 book ai didi

ios - 是否有必要将一个对象声明为委托(delegate)来使用它?

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:17:57 25 4
gpt4 key购买 nike

我用调用类作为委托(delegate)创建了一个 NSURLConnection。在意识到我从未将对象声明为遵守协议(protocol)之前,我将其构建到我的测试设备上,但它运行了(我会说正常,但我认为我完全围绕多线程搞砸了我的应用程序)。

那么是否没有必要将对象声明为实现委托(delegate)?

我也没有包含所有需要的委托(delegate)方法,它仍然调用了委托(delegate)方法。

这个项目还有其他人,而且它相当大,所以委托(delegate)协议(protocol)可能在某个模糊的地方声明,但我在 header 和实现声明中搜索时没有看到它。

最佳答案

delegate NSURLConnection initWithRequest:delegate: 的参数方法定义为 id<NSURLConnectionDelegate> 类型.

如果您传递的对象未声明它符合 NSURLConnectionDelegate ,你应该得到一个编译器警告,表明你传递了错误类型的对象。仔细检查是否收到任何警告。如果不是,那么您的类在某个地方正确地声明它符合协议(protocol)。

在运行时,唯一的要求是委托(delegate)对象实际至少实现委托(delegate)所需的方法。但在这种情况下,协议(protocol)中没有必需的方法。它们都是可选的。

您声明:“我也没有包含所有必需的委托(delegate)方法,它仍然调用了委托(delegate)方法。”这没有意义。不实现怎么调用呢?另外,协议(protocol)中没有必需的方法。

关于ios - 是否有必要将一个对象声明为委托(delegate)来使用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16724855/

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