简化GCD块和方法

时间:2012-07-03 15:02:40

标签: objective-c ios nsurlconnection objective-c-blocks grand-central-dispatch

我发现自己经常编写复杂的基于GCD /块的方法(与下面显示的代码段相似)。

  1. 你如何分解这种方法更小 部分

  2. 您是否愿意在受管理的GCD中启用解析方法? 对象的代码或者您希望保持 视图中的GCD代码 控制器

  3. 如何在后台的代码中运行 NSURL请求 队列[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue]当我使用NSOperationQueue currentQueue时,不会调用完成处理程序。

2 个答案:

答案 0 :(得分:3)

  1. 使用C函数或实例方法委派某些进程(例如保存到XML文件)。

  2. 绝对将它保存在对象的代码中。你正在打破MVC,

  3. 请勿使用NSURLRequest,而是使用AFNetworkingRestKit

答案 1 :(得分:2)

我会把它分开,所以你可以在其中看到MVC设计。所以我会:

  1. UIViewController
  2. 用于处理UIViewControllerNSURLConnection和XML解析器
  3. 之间交互的Manager类
  4. 用于处理NSURLConnection(或您想要的任何第三方)的课程。
  5. 处理XML解析和后写的类。
  6. 要建立沟通,我会使用委托。这样你就可以拥有不同的工作块。因此,当您需要更改XML Parse时,只需切换类;如果您需要在其他地方使用此逻辑,只需切换UIViewController即可。保持简单和干净。

    P.S:有时候,无论你做什么,代码都是,就其本质而言,复杂,请使用评论,以后你会感谢自己......