Я создаю приложение для визуализации данных, которое поможет мне реализовать данные с использованием каркасов Apple Core Graphics
и Core Animation
. У меня есть сервер Python, выполняющий науку о данных и сообщающий данные, которые я хочу визуализировать в JSON.
Когда я начал создавать визуалы данных в моих подклассах NSView
, я заметил, что есть много данных, которые поддерживает каждый слой Core Animation
. Например, если бы это был график свечи, каждая «свеча» имела бы связанные с торговлей данные открытия, максимума, минимума, закрытия, даты / времени и т. Д.
Я знаю, что в строгом MVC-дизайне представления не должны обрабатывать какие-либо средства управления данными - только рендеринг этих данных.
Разве это будет Core Data
от Apple?
Все мои исследования ...
... говорит, что Core Data
- это , а не база данных. Это менеджер графов объектов , который может сохранить данные объекта , если вы этого хотите. В нем также говорится, что «Основная функция Core Data - предоставить полный уровень модели для дизайна приложения Model-View-Controller, который использует Apple API».
Значит ли это, что Core Data
можно использовать без функции сохранения?
Так как большая часть моих данных жива , я не особо нуждаюсь в постоянстве. Все эти данные поступают с моего сервера Python. Но у меня будет LOT графиков с Core Animation
формами для их представления. И графики будут постоянно меняться в зависимости от различных параметров, изменений сервера и выбранных пользователем наложений.
Я начал разрабатывать отдельный класс для обработки отдельных CAShapeLayer
s, данных, определяющих каждый из них, и методов их рендеринга. Но это не настоящий дизайн MVC - это объектно-ориентированный подход, верно ?
Я в замешательстве ...
Какими данными должен управлять NSView
подкласс, и когда Core Data
должен вступить во владение?
Мое исследование также показало, что NSCoder
с NSKeyArchiver
является альтернативой, но, похоже, она используется в основном для сериализации / десериализации или кодирования / декодирования данных в хранилище файлов или для передачи по сети. Я не уверен, что ищу это.