Я получил максимальную отдачу от Objective-C, исследуя его с помощью инфраструктуры тестирования. Я написал короткое сообщение в блоге об этом. Вам также следует обдумать соглашения об управлении памятью, используемые Objective-C, к подсчету ссылок нужно немного времени, чтобы привыкнуть, но он работает очень хорошо, если обязанности четко разделены (об этом я тоже писал в своем блоге).
Запятнав руки в тестовой среде (GHUnit в этом отношении), я смог узнать гораздо больше о языке, чем мог бы "традиционным" способом. Конечно, вам понадобится небольшой проект с домашним животным, иначе такой подход не имеет смысла.
Я не думаю, что ваш пример - очень хорошая идея, поскольку он требует, чтобы вы связывались с http-соединениями, ресурсами и т. Д., Что в конце концов немного специфично для фреймворка. Разбор текстового файла будет немного проще в этом отношении. Использование инфраструктуры модульного тестирования имеет следующие преимущества:
- узнайте о системах сборки для конкретной платформы и подробностях развертывания
- вынужден разрабатывать компоненты в слабосвязанной форме с нуля
- , таким образом, исследуя уникальные механизмы языка, которые могут потребовать новых или сделать известные шаблоны избыточными (например, категории делают внедрение зависимостей устаревшим и т. Д.)
- быстрый цикл тестирования компиляции, меньше времени, проводимого перед отладчиком
- в сочетании с контролем источника: безболезненные эксперименты
Вам также следует изучить реализацию инфраструктуры тестирования, поскольку платформы тестирования всегда требуют работы с метаданными в некоторой степени. Каркасы тестирования часто используются вместе со средами изоляции. Они в основном создают объекты во время выполнения, которые соответствуют определенным интерфейсам и выступают в качестве заменителей для конкретных объектов. Рассматривая их реализацию, вы узнаете о манипуляциях во время выполнения, которые можно выполнить в Objective-C (ключевое слово: Method-Swizzling)