管理两个 NSURLConnection

2023-11-29

我想从两个不同的 kml 文件执行两个异步请求,因此我首先设置两个请求:

NSString *server1URL = [NSString stringWithFormat:...];
NSMutableURLRequest *firstRequest =[NSMutableURLRequest requestWithURL:[NSURL URLWithString:server1URL]];
[firstRequest setHTTPMethod:@"GET"];
NSURLConnection *AConnection = [NSURLConnection connectionWithRequest:firstRequest delegate:self];

NSString *server2URL = [NSString stringWithFormat:...];
NSMutableURLRequest *secondRequest =[NSMutableURLRequest requestWithURL:[NSURL URLWithString:server2URL]];
[secondRequest setHTTPMethod:@"GET"];
NSURLConnection *BConnection = [NSURLConnection connectionWithRequest:secondRequest delegate:self];

然后我初始化NSMutableData我将使用:

AResponseData = [[NSMutableData alloc] init];
BResponseData = [[NSMutableData alloc] init];

那么我参考一下this发布并执行此操作:

connectionToInfoMapping = CFDictionaryCreateMutable(kCFAllocatorDefault, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);
CFDictionaryAddValue(connectionToInfoMapping, AConnection, [NSMutableDictionary dictionaryWithObject:AResponseData forKey:@"receivedData"]);
CFDictionaryAddValue(connectionToInfoMapping, BConnection, [NSMutableDictionary dictionaryWithObject:BResponseData forKey:@"receivedData"]);

好的,接下来有代表:

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
    const NSMutableDictionary *connectionInfo = CFDictionaryGetValue(connectionToInfoMapping, connection);
    [[connectionInfo objectForKey:@"receivedData"] appendData:data];
}

因此,这样我就可以将数据附加到与连接匹配的正确 NSMutableData 中。

Now in - (void)connectionDidFinishLoading:(NSURLConnection *)connection,我想要“如果A完成,就这样做,如果B完成,就这样做”,我的问题是,我该怎么做?


- (void)connectionDidFinishLoading:(NSURLConnection *)connection{
    if( [connection isEqual: AConnection] ){
        // do connection A stuff
    }
    else if( [connection isEqual: BConnection] ){
        // do connection B stuff
    }  
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

管理两个 NSURLConnection 的相关文章

随机推荐

  • 从进程中关闭正在运行的程序

    如何从子进程中关闭程序 分叉示例 import easygui import multiprocessing def func reply easygui buttonbox start image F project phonber pn
  • 如何用Java从给定的数字列表中生成随机数

    假设我有一个像 1 3 7 9 这样的数字数组 向量 那么我需要从这个列表中随机猜测一个数字 在 Java 中使用 Random 类似乎不可能做到这一点 谁能帮我告诉我一种做这种事情的方法 我必须更改用于生成随机数的数字列表 我正在尝试实施
  • Python 3.4 在生成一些(但不是全部)带有分段错误 11 的 Cartopy 地图时崩溃

    我已经在运行 El Capitan 10 11 6 和 Python 3 4 的 Mac 上安装了 Python 映射工具 Cartopy 我可以使用 Cartopy 成功绘制一些地图 但在某些情况下 Python 内核会因分段错误 11
  • 无法实例化类型 [简单类型,类 java.time.LocalDate] 的值

    这里我使用 java 1 8 的 LocalDate 类 在我的 bean 中 我将返回类型设置为 LocalDate 我发送日期格式为07 01 2017 当我试图保存时 我遇到了以下异常 org springframework web
  • 虚函数和纯虚函数之间的区别[重复]

    这个问题在这里已经有答案了 纯虚函数和虚函数有什么区别 我知道 纯虚函数是一个没有函数体的虚函数 但这是什么意思以及下面的行实际上做了什么 virtual void virtualfunctioname 0 虚函数使其类成为多态基类 派生类
  • 为什么这个分支会破坏类型推断?

    我正在使用一个自行开发的实现Either在Java中 有这样的方法 public static
  • 嵌套的弹性元素不会使父元素增长

    我正在尝试编写一个标题 其中包含月份名称以及该月名称正下方的所有日期 天项目具有固定宽度 所以我想 为什么不使用 Flexbox 由于某些原因 day其父级元素正在下降 并且父级元素不会增长 你能告诉我为什么吗flex basis auto
  • 如何使用Python和Cypher在Apache Age中实现最短路径算法?

    我正在开发一个使用 Apache Age 作为图形数据库的 Python 项目 我需要找到两个可能节点之间的最短路径 我如何使用 Python 来实现这个 创建节点和图结构的代码如下 Python code to create nodes
  • 如何创建在设备和佩戴上不同的通知?

    基本上 我想知道是否有可能创建两个不同的通知以及如何创建 一个用于 Android 设备 另一个用于 Android Wear 例如 我想要setContentText 但在 Android 设备上我想要setContentTitle an
  • 在 ObservableList 上调用clear()会导致IndexOutOfBoundsException

    我有一个带有可观察列表的组合框 该列表会随着用户输入字符或进行选择而更新 我遇到的问题是当我从 ComboBox 中选择一个项目并调用侦听器事件 然后调用 ComboBox 的 ObservableList 中的clear 方法时引起的 完
  • Android TCP 应用程序挂在 inStream.readline() 上

    这是一个延续这个问题因为它回答了我原来的问题 但它没有解决错误 问题 如何修复挂在这一行的代码inStream readline 我的意图 这是在一个线程中 该线程将循环检查是否有 outMessage 如果有 它将发送消息 接下来 它将检
  • 如何在 Vim 中实现类似 MATLAB 的单元格模式

    在 MATLAB 中 我们可以向编辑器写入以下内容 a example cell plot rand 3 another cell A rand 2 10 t linspace pi pi 2 10 compass fft A sin t
  • 将 Parceler (@Parcel) 与 Realm.io (Android) 一起使用

    我有以下代码会产生错误 Error Parceler Unable to find read write generator for type io realm Realm for io realm RealmObject realm 一切
  • MATLAB 中的稳定 AccumArray

    MATLAB的内置函数accumarray接受一个函数fun作为第四个参数 A accumarray subs val sz fun 这适用fun到每个元素子集val具有相同的下标subs 然而 该文档指出 如果下标在subs未根据其线性索
  • 在下拉列表内的树层次结构中显示类别/子类别

    我有一个类别表 其中包含字段 id name 和parent id 根类别的parent id 0 现在我想在下拉列表中显示类别列表 结构如下 root category first sub category sub sub categor
  • .NET 4 GUID 是如何生成的?

    我知道有很多问题here以及雷蒙德的出色 像往常一样 post 然而 由于创建 GUID 的算法明显发生了变化 我发现很难获得任何最新信息 这MSDN似乎试图提供尽可能少的信息 关于 NET 4 中如何生成 GUID 我们了解多少 更改了什
  • ID 保存并显示名称 - 带芯片的材质 ui 多选

    我正在使用基于文档示例的 Material UI Multiple Select 我需要保存所选选项的 ID 和显示名称 我尝试了很多方法但没有任何帮助 我需要存储 id 并显示值 请帮助我指导 这是我的代码和盒子link 我也想知道同样的
  • 奇怪的谷歌地图行为 - 瓷砖仅出现在左上象限

    使用谷歌地图数十次 但无法绕过这一点 为地图版本 3 执行 google 的简单 hello world http code google com apis maps documentation javascript tutorial ht
  • 赋值关联性[重复]

    这个问题在这里已经有答案了 赋值运算符有右到左关联性 所以 var x y x y 1 按预期工作 x 等于 1 现在考虑代码 var foo foo x foo n 2 我希望上面的工作像下面这样 var foo n 2 foo x fo
  • 管理两个 NSURLConnection

    我想从两个不同的 kml 文件执行两个异步请求 因此我首先设置两个请求 NSString server1URL NSString stringWithFormat NSMutableURLRequest firstRequest NSMut