我有两个NSURLConnections.第二个取决于第一个的内容,因此处理从连接接收的数据对于两个连接将是不同的.
我只是拿起Objective-C,我想知道实现委托的正确方法是什么.
现在我正在使用:
NSURL *url=[NSURL URLWithString:feedURL]; NSURLRequest *urlR=[[[NSURLRequest alloc] initWithURL:url] autorelease]; NSURLConnection *conn=[[NSURLConnection alloc] initWithRequest:urlR delegate:self];
我不想使用self作为委托,如何使用不同的委托定义两个连接?
NSURLConnection *c1 = [[NSURLConnection alloc] initWithRequest:url delegate:handle1]; NSURLConnection *c2 = [[NSURLConnection alloc] initWithRequest:url delegate:handle2];
我如何创建handle1和handle2作为实现?还是接口?我真的不明白你会怎么做.
任何帮助都是极好的.
谢谢,Brian Gianforcaro
Ben,虽然您的信息很有用但它没有完全回答我问的问题.
我终于想出了如何设置我自己的代表,这就是我真正要求的.
我是这样实现的:
@interface DownloadDelegate : NSObject - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response; - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data; @end @implementation DownloadDelegate - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response { } - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { } @end
我们像这样使用委托:
DownloadDelegate *dd = [DownloadDelegate alloc]; NSURLConnection *c2 = [[NSURLConnection alloc] initWithRequest:url delegate:dd];
希望能帮助任何人处于同一位置,并再次感谢Ben的帮助.
谢谢,
Brian Gianforcaro
我认为以一种干净的方式处理多个连接的最好方法是保留一个委托,并用标记识别每个NSURLConnection(这是一个非常简单的子类,你可以从http://www.isignmeout.com阅读和复制/ multiple-nsurlconnections-viewcontroller / )
基本上,使用标识标记初始化每个NSURLConnection,然后您可以在委托中拉出该标记,并根据您需要的逻辑使用Switch-Case处理它.
UPDATE
我已将子类NSURLConnection转换为一个简单的类别 - 更简单,更简洁
https://github.com/Shein/Categories