我有一个简单的登录视图,当你成功登录时,它会从服务器获取一些json并将其插入数据库。所以即时使用:
// NSURLRequest
- (void) connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
// appending data
}
- (void) connectionDidFinishLoading:(NSURLConnection *)connection
{
// insert into db
}
我现在想要第二个连接来下载一些文档,如何利用上面的方法将另一个URL传递给同一个视图中的第二个NSURLRequest以不同的方式(而不是json)处理数据?
答案 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:
对象与其存储版本进行比较。
如果你一次做多个,你需要另一种方法来区分。我建议使用ASIHTTPRequest
或AFNetworking
来简化这一过程,但是如果您想使用Apple的库进行操作,那么您需要分离多个线程,记录哪个线程号正在处理哪个请求网址,并在==
方法中使用该信息。