0

Я разрабатываю приложение iPhone с использованием Core Data, и я ищу некоторые общие рекомендации и рекомендации относительно того, приемлемо ли оно передавать данные между ViewControllers и делать локальную выборку в каждый ViewController, когда вы переходите к нему. Обычно я бы сказал, что все зависит от разных факторов (например, производительности и т. Д.), Но подход передачи данных настолько распространен в моем приложении, и я напуган всеми историями об отказе Apple от приложений из-за несоблюдения их стандартных рекомендаций.Передача данных между ViewControllers и выполнением локальных Fetch в каждом VC

Так что позвольте мне сказать другим способом - нестандартно ли передавать данные между VC?

Причина, по которой я передаю данные, объясняется тем, что каждый ViewController является просто другим представлением данных, представленных в моей объектной модели/графике. Как только у меня есть дескриптор моего первого объекта в первом контроллере представления (который я, конечно, должен получить), я могу использовать существующую структуру объекта/отношения, чтобы развернуть на следующий уровень детализации в данные, и поэтому я просто передаю эти объекты к следующему VC.

Отдельно, один из возможных недостатков с этим методом передачи данных для каждого-VC заключается в том, что я не получаю (как я полагаю) оптимизацию/преимущества, которые обеспечивает NSFetchedResultsController с точки зрения эффективного использования памяти и раздела обработки. Мое приложение доступно только для чтения, но у меня есть одна таблица с 5000 строк, и мне любопытно, если я упускаю преимущества NSFetchedResultsController. Любые мысли об этом? Могу ли я каким-то образом воспользоваться преимуществами NSFetchedResultsController, не выполняя полную выборку (как я бы уже передал данные из моего предыдущего VC)?

Большое спасибо.

ответ

1

Это не только стандарт для передачи данных, но и рекомендуемый способ его выполнения.

Это называется инъекцией зависимостей.

+0

Спасибо, Маркус. Я также прочитал ваш ОЧЕНЬ полезный учебник по этому вопросу и почувствовал себя намного лучше. Ссылка ниже для других людей. http://www.mac-developer-network.com/articles/cd0004.html – Tofrizer