2010-08-31 3 views
0

У меня есть программа, которая работает и использует Core Data для хранения.Вывод iPhone CoreData из делегата?

Однако я не совсем уверен, должен ли я поддерживать методы извлечения/обновления исключительно для делегата приложения?

Один пример для вопроса в приложении. Вопрос имеет «левое» и «правильное» утверждение.

Делегат в настоящее время создает новый QuestionVC и передает в вопросе номер вопроса. Затем QuestionVC затем выполняет выборку для получения объекта вопроса и использует левое и правое свойства объекта для установки текста на экране.

Должен ли я сделать это наоборот ...

Делегат делает выборку по количеству вопросов, а затем создает QuestionVC и проходит в объекте вопроса. Затем QuestionVC просто должен получить левый и правый текст без необходимости делать выборку.

Любые советы, консультации приветствуются.

Благодаря

Оливер

ответ

2

Оба подхода звучат в силе, но если вы можете создать свой вид иерархии контроллера таким образом, что только один объект должен знать о Core Data (т.е. передать объект вопрос к вашему QuestionVC), то это, вероятно, более простой дизайн, который, вероятно, лучше.

Лично я бы не делал никаких попыток в своем делете приложения. Мои делегаты приложений настраивают только основные данные (т. Е. Контекст управляемых объектов) и передают их в контроллер корневого представления. Я предпочитаю, чтобы мои делегаты приложений были как можно меньше. Я не использую их как универсальный синглтон.

+0

Это разумный совет в ИМХО. 'AppDelegate' должен быть * крошечным *, а не свалкой для общего кода. –

+0

Хвала из (Основные данные) Цезарь! :) –

+0

Спасибо за ваш ответ! Это имеет большой смысл. Возможно, у вас есть ссылка на ссылку о программировании с делегатом приложения? Моя становится довольно большой, и я беспокоюсь, что она становится слишком большой и неуправляемой. Я полагаю, что лучшим методом было бы создать класс для управления вопросами и использовать его для извлечения вопросов и нажать/вскрыть QuestionVC для представления (это будет сделано через appdeegate? Ie [[delegate navController] pushViewController: questionVC animated: YES];) Это позволило бы мне минимизировать импорт и количество методов внутри делегата? – Fogmeister