我是否必须创建一个类的实例才能为其分配一个委托?

时间:2010-12-16 10:25:50

标签: objective-c delegates

对不起这个问题的无效级别。

我看到了this回答,它说的是

  

将这样的内容添加到NSURLConnection委托

但是,有问题的方法sendSynchronousRequest:returningResponse:error:是一种类方法。如果我正确理解委托方法,它们使用在NSURLConnection对象启动时指定的委托。

因此,如果我没有该类的实例,则无法使用委托。我理解正确吗?

2 个答案:

答案 0 :(得分:1)

是当您异步发送请求时,委托用于处理事件。

使用+sendSynchronousRequest:returningResponse:error:方法发送同步请求时,不使用委托 - 您只获得结果数据和(可选)服务器响应和错误,并且不知道中间加载事件(并记住调用线程也被阻塞而连接正在进行中。)

答案 1 :(得分:1)

是的,你是对的。在Cocoa中,分配委托需要一个实例。在NSURLConnection的情况下,在发出使用-initWithRequest:delegate:+connectionWithRequest:delegate:

启动的异步请求时,应使用其委托。

由于类也是对象,因此可以设想它们也可以拥有代理。但是,由于Objective-C中没有类变量的概念,因此类无法存储其委托(它可以在其.m文件中使用标准C变量)。无论如何,这个概念并没有在Cocoa中使用。