0

首先,我认为 iPad 只有一个 NIC(或任何硬件)来处理连接。因此请求按顺序排队和服务,并且不能同时运行 2 个连接。这个猜测是真的吗?

我有UITabBar控制器,每个选项卡的视图控制器下载并解析不同的 JSON 提要 URL。我创建了一个单例类,它从单个 URL 下载提要,然后解析它并在工作完成时调用其中一个视图控制器的委托函数。为了不挂起主线程,我决定使用异步连接。

URLConnection4Target * _conn = [[URLConnection4Target alloc] initWithRequest:request delegate:self startImmediately:NO];

因此,所有选项卡都可以从同一个窗口访问(不是一个接一个地导航),并且它们对不同的提要使用不同的 URL。

我的问题是如何在单例类中设计连接以按顺序(或如果可能的话同时)为多个视图控制器提供服务。

我尝试使用NSInvocationOperation是因为我不确定如果用户单击一个选项卡并访问该NSURLConnection对象而其他视图控制器已经可以访问该对象会发生什么。

4

1 回答 1

0

首先,网络连接的数量与 NIC(网络接口卡)或以太网端口的数量无关。其次,您提到您正在为您的 URLConnection 使用单例模式?在没有看到你的单身人士的情况下,我假设这就是你似乎一次只能打开一个连接的原因。您可以根据需要为选项卡创建任意数量的 URLConnection,不要将它们限制为单例。想想 URLConnection/request,N x requests/tab,你应该没问题。

So when a tab is visible/active, create the URLRequest for the content, let it work asynchronously in the bg but make sure any UI updates are posted back to the main thread. 最后,当请求完成时,解除分配并忘记它。

于 2013-01-14T16:30:44.877 回答