iOS - 使用多个连接

时间:2011-12-01 22:50:15

标签: ios4

我有一个简单的登录视图,当你成功登录时,它会从服务器获取一些json并将其插入数据库。所以即时使用:

// NSURLRequest 

- (void) connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
    // appending data
}

- (void) connectionDidFinishLoading:(NSURLConnection *)connection
{
    // insert into db
}

我现在想要第二个连接来下载一些文档,如何利用上面的方法将另一个URL传递给同一个视图中的第二个NSURLRequest以不同的方式(而不是json)处理数据?

1 个答案:

答案 0 :(得分:1)

嗯,您需要做的第一件事就是将新delegate的{​​{1}}再次设置为此类,以便调用这些方法(但您知道这一点)。如果您一次执行这些操作,请存储指向活动NSURLConnection的指针,例如:

NSURLRequest

然后检查活动请求的URL以区分请求:

@property (nonatomic, assign) NSURLRequest *activeURLRequest;

请注意,您还可以使用- (void) connectionDidFinishLoading:(NSURLConnection *)connection { NSString *urlPath = [[activeURLRequest URL] path]; if([urlPath isEqualToString:@"http://my.url.string/1"]) // insert into DB else if([urlPath isEqualToString:@"http://my.url.string/2"]) // do the other thing } (或NSURL运算符)直接将isEqual:对象与其存储版本进行比较。

如果你一次做多个,你需要另一种方法来区分。我建议使用ASIHTTPRequestAFNetworking来简化这一过程,但是如果您想使用Apple的库进行操作,那么您需要分离多个线程,记录哪个线程号正在处理哪个请求网址,并在==方法中使用该信息。