Итак, я пытался разработать чистый способ сбора данных для моих моделей на iPhone.Все данные для моего приложения поступают из API-интерфейса JSON.
Так что сейчас, когда виртуальному каналу нужны некоторые модели, он сам вызывает JSON (асинхронно), а когда получает данные, он строит модели.Это работает, но я пытаюсь придумать более чистый метод, с помощью которого DAO получает информацию для меня и возвращает модели асинхронно.
Моя первоначальная мысль - создать протокол для моих DAO,такой, что VC будет создавать экземпляр DAO и делать себя делегатом.Когда вы запрашивали данные [DAOinstance getAllUsers], DAO выполнял всю работу по сетевому запросу, а затем, когда у него были данные, он вызывал метод для своего делегата (VC) для передачи данных.
ИтакЯ думаю, что это классное решение, но понял, что если бы мне нужно было использовать один и тот же DAO для разных целей в одном и том же VC, мой метод делегата должен был бы ветвиться в логике в зависимости от того, какой экземпляр DAO инициировал запрос.
Итакмоей второй мыслью было иметь возможность передавать селекторы «обработчик» объекту DAO в виде типичных шаблонов javascript.Поэтому вместо официального протокола я бы сказал что-то вроде [DAOinstance getAllUsersWithSelector: "TheHandlerFunctionOnMyVC:"] Затем, когда DAO завершит свою сетевую деятельность, он вызовет переданный селектор на VC и передаст данные обратно.
Значит, я здесь совершенно не в том направлении?Похоже, что это может быть хорошим способом.
Любые указатели или статьи о разработке такого рода слоя данных были бы приятными.
Спасибо!Боб