2

Я часто нахожу, что я написал комплексный метод GCD/block (сравнимый с фрагментом кода, показанным ниже).Упрощение блоков и методов GCD

  1. Как бы вы разбить такого рода метод в небольших частей?

  2. Вы предпочитаете НОД включить в методы синтаксического анализа в коде управляемом объектов или вы предпочли бы сохранить код НОД в зрения контроллера?

  3. Как я могу запустить запрос NSURL в коде ниже в фоне очереди ([NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] Когда я использую NSOperationQueue currentQueue, обработчик завершения не дозвонились.

+0

Off темы, слишком субъективен. –

+0

@ RichardJ.RossIII: А? Слишком наводящий на размышления о чем? –

+0

@skinnyTOD извините, предназначенный субъективный ... автокоррекция FTL. –

ответ

3
  1. Используйте функцию C или метод экземпляра для делегирования определенных процессов (например, сохранение в файл XML).

  2. Определенно держите его в коде объекта. Вы нарушаете MVC слишком много, как есть,

  3. Не используйте NSURLRequest, вместо этого используйте AFNetworking или RestKit.

+0

Или MKNetworkKit – Raspu

+0

+1 для линии штамповки: «Используйте функцию C (...)» – Peres

+0

@JackyBoy Серьезно, это не было ссылкой на этот вопрос, клянусь. –

2

Я бы отделил это, чтобы вы могли увидеть дизайн MVC в нем. Так что я бы:

  1. UIViewController
  2. Менеджер класса для обработки взаимодействий между UIViewController, то NSURLConnection и XML Parser
  3. Класс, чтобы справиться с NSURLConnection (или какой-либо третьей партию вы хотели бы).
  4. Класс для обработки XML-анализа и последующего письма.

Чтобы установить связь, я бы использовал делегацию. Таким образом, у вас будут разные блоки работы. Поэтому, когда вам нужно изменить XML-анализ, просто переключите класс; если вам нужно использовать эту логику в другом месте, просто переключите UIViewController. Держите его простым и чистым.

P.S: Иногда, независимо от того, что вы делаете, код просто есть, по его природе, сложные, пожалуйста, используйте комментарии, вы будете благодарить себя позже ...

Смежные вопросы