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. を使用しないでください。代わりにAFNetworkingまたはRestKitNSURLRequestを使用してください。

于 2012-07-03T15:05:58.080 に答える
2

実際に MVC の設計を確認できるように、それを分離します。だから私は持っているでしょう:

  1. UIViewController
  2. UIViewController、 、NSURLConnectionおよび XML パーサー間の対話を処理するマネージャ クラス
  3. NSURLConnection(または任意のサード パーティ)を処理するクラス。
  4. XML 解析と事後書き込みを処理するクラス。

コミュニケーションを確立するには、委任を使用します。このようにして、さまざまな作業ブロックができます。したがって、XML パースを変更する必要がある場合は、クラスを切り替えるだけです。このロジックを別の場所で使用する必要がある場合は、UIViewController. シンプルかつクリーンに保ちます。

PS:時々、あなたが何をしても、コードは本質的に複雑です。コメントを使用してください。後で感謝します...

于 2012-07-03T15:11:29.200 に答える