gpt4 book ai didi

ios - 遇到多个 NSURLConnection 问题

转载 作者:行者123 更新时间:2023-11-29 10:53:16 27 4
gpt4 key购买 nike

我环顾四周,似乎无法为我的问题找到合适的答案。到目前为止,我有一个网络引擎,我从每个 View Controller 委托(delegate)给它来执行我的网络事件。

例如,要获取用户详细信息,我有一个这样的方法:

- (void) getUserDetailsWithUserId:(NSString*) userId
{
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@Details", kServerAddress]]];
request.HTTPMethod = @"POST";

NSString *stringData = [NSString stringWithFormat:@"%@%@", kUserId, userId];
NSData *requestBodyData = [stringData dataUsingEncoding:NSUTF8StringEncoding];
request.HTTPBody = requestBodyData;

NSURLConnection *conn = [[NSURLConnection alloc] init];
[conn setTag:kGetUserInfoConnection];
(void)[conn initWithRequest:request delegate:self];
}

当我在 connectionDidFinishLoading 中获取数据时,我在 NSDictionary 中接收数据,并根据我为连接设置的标记传输数据到所需的 NSDictionary

这工作正常。但是现在我需要来自同一个 View Controller 的两个请求。所以当我这样做时,数据会混淆。假设我有一个正在实现的搜索连接,当我进行搜索时,来自用户详细信息的数据可能会出现。根据我在 connectionDidFinishLoading 中进行的切换,数据未分配给正确的 NSDictionary。我正在为整个网络引擎使用一个委托(delegate)。

我是 NSURLConnection 的新手,我应该设置一个队列还是什么?请帮忙。

编辑

这是我在 connectionDidFinishLoading 中接收数据的部分:

- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
if ([connection.tag integerValue] == kGetUserDetails)
networkDataSource.userData = self.jsonDetails;
if ([connection.tag integerValue] == kSearchConnection)
networkDataSource.searchData = self.jsonDetails;
}

然后我有一个 switch case,它为所需的 View Controller 调用所需的委托(delegate)。

最佳答案

Anil 在这里您需要确定您获得数据的请求,最简单的检查方法如下,

- (void)connectionDidFinishLoading:(NSURLConnection *)conn
{
// Check URL value for request, url for search and user details will be different, put if condition as per your need.
conn.currentRequest.URL
}

尝试使用 conn.originalRequest.URL 它将给出原始请求。

关于ios - 遇到多个 NSURLConnection 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19582041/

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