Objective c 应用程序激活时的iOS网络操作

Objective c 应用程序激活时的iOS网络操作,objective-c,ios,asihttprequest,afnetworking,Objective C,Ios,Asihttprequest,Afnetworking,在我当前的iOS应用程序中,当应用程序激活时,我需要执行几个网络操作(我宁愿一次获取所有内容,也不愿在用户单击专用选项卡时查询内容)。我使用的是UIViewController,当应用程序进入前台并处理其中的所有网络内容时,它应该会显示出来。 这是推荐的方法吗 我需要发出的请求如下: request1 if result1 request2 request3 else if result2 request4 request3

在我当前的iOS应用程序中,当应用程序激活时,我需要执行几个网络操作(我宁愿一次获取所有内容,也不愿在用户单击专用选项卡时查询内容)。我使用的是UIViewController,当应用程序进入前台并处理其中的所有网络内容时,它应该会显示出来。
这是推荐的方法吗

我需要发出的请求如下:

request1
   if result1
      request2
         request3
   else if result2
      request4
         request3

为了避免使用意大利面代码,是否有一个库来支持像这些请求那样的链接请求?我正在使用ASIHttpRequest,但我没有找到任何好的方法来执行它(即使使用队列)。

这没什么错,假设您的
UIViewController
是某种“加载”。
也许更好的处理方法是创建一个
NSObject
子类,并让它处理您的网络操作,因此在
applicationdibecomeactive:
中,您可以直接启动它,并确保您的应用程序正常运行。

这没什么错,假设您的
UIViewController
是某种“加载”。
也许更好的处理方法是创建一个
NSObject
子类,并让它处理您的网络操作,因此在
applicationdibecomeactive:
中,您只需关闭它,仍然可以确保应用程序正常运行。

AFHTTPCLient-EnqueueBatchOfHttPrequesStoperationsWithRequests:progressBlock:completionBlock:将一组操作排队;当每个操作完成时,它会像正常情况一样触发自己的
completionBlock
,以及进度块,它会告诉您有多少请求已经完成。然后,一旦完成所有操作,将执行最终完成块

因此,在您的情况下,它可以简单到:


[someClient EnqueueBatchOfHttPrequesStoperationsWithRequests:[NSArray arrayWithObjects:request1、request2、request3、request4、nil]progressBlock:nil completionBlock:(此处为控制器逻辑)];

AF0.9增加了批处理请求的功能
AFHTTPCLient-EnqueueBatchOfHttPrequesStoperationsWithRequests:progressBlock:completionBlock:
将一组操作排队;当每个操作完成时,它会像正常情况一样触发自己的
completionBlock
,以及进度块,它会告诉您有多少请求已经完成。然后,一旦完成所有操作,将执行最终完成块

因此,在您的情况下,它可以简单到:


[someClient EnqueueBatchOfHttPrequesStoperationsWithRequests:[NSArray arrayWithObjects:request1、request2、request3、request4、nil]progressBlock:nil completionBlock:(此处为控制器逻辑)];

您是指处理网络操作逻辑的单例对象(是否也需要从代码中的其他地方调用它们)?这是一个好主意。是的,你可以用一个单例来实现它。你是说一个处理网络操作逻辑的单例对象(它们是否也需要从代码中的其他地方调用)?这是一个好主意。是的,你可以用一个单例来实现。不久前我尝试了AFNetworking,但我有点尴尬,因为它不容易改变超时间隔,我想这就是我坚持AsiTRequest的原因。我可能会再试试。更改超时时间间隔非常简单,只需在
NSMutableURLRequest
上设置属性即可。此外也就是说,我希望你这次觉得AFNetworking更令人愉快:)我不久前尝试过AFNetworking,但我有点尴尬,因为它不容易改变超时时间间隔,我想这就是我坚持AsiTRequest的原因。我可能会再试试。更改超时时间间隔非常简单,只需在
NSMutableURLRequest
上设置属性即可。此外这就是说,我希望这次你会觉得网络更美味:)