2

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

  1. 您将如何将这种方法分成较小的部分

  2. 您宁愿在托管对象的代码中启用 GCD 解析方法,还是宁愿GCD 代码保留在视图控制器中?

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

4

2 回答 2

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

  2. 绝对将其保存在对象的代码中。你破坏MVC太多了,

  3. 不要使用NSURLRequest,而是使用AFNetworkingRestKit

于 2012-07-03T15:05:58.080 回答
2

我会把它分开,这样你就可以真正看到其中的 MVC 设计。所以我会:

  1. UIViewController
  2. UIViewController一个管理器类,用于处理、NSURLConnection和 XML 解析器之间的交互
  3. 处理NSURLConnection(或您想要的任何第 3 方)的类。
  4. 处理 XML 解析和后写的类。

为了建立沟通,我会使用委托。这样你就会有不同的工作块。所以当需要更改XML Parse 时,只需切换类即可;如果您需要在其他地方使用此逻辑,只需切换UIViewController. 保持简单和干净。

PS:有时候,无论你做什么,代码本身就是复杂的,请使用注释,稍后你会感谢自己......

于 2012-07-03T15:11:29.200 回答