При работе с приложениями, интенсивно использующими данные, разработчик часто должен делать больше, чем просто показывать списки записей данных в табличном представлении.  Библиотека CorePlot позволит вам добавить потрясающие визуализации данных в ваши приложения.  Узнайте, как в этой серии Tuts + Premium! 
Визуализация данных имеет решающее значение, помогая пользователю разобраться в данных и принимать важные решения. CorePlot — это сторонняя библиотека, которая позволяет отображать ряд интерактивных графиков в вашем приложении. Это включает в себя линейные графики, графики рассеяния, гистограммы и даже круговые диаграммы. Вы можете настроить внешний вид графиков и даже позволить пользователю взаимодействовать с ними.
Также доступно в этой серии:
- Работа с CorePlot: настройка проекта
 - Работа с CorePlot: основы построения
 - Работа с CorePlot: стилизация и добавление графиков
 - Работа с CorePlot: создание гистограммы
 - Работа с CorePlot: создание круговой диаграммы
 
Что мы покроем
В следующих 5 уроках мы будем создавать приложение, которое отображает данные о зачислении студентов в университет. В частности, мы рассмотрим:
- Как добавить CorePlot в приложение.
 - Основы CorePlot и как заставить работать график.
 - Создание линейного графика.
 - Стилизация графиков.
 - Создание гистограммы.
 - Абстрагирование графической логики данных.
 - Создание круговой диаграммы.
 
Требуемые знания
Вы должны иметь промежуточное понимание разработки под iOS и модели делегирования разработки. Понимание CoreData полезно, но не обязательно. Большая часть функциональности CoreData уже реализована, и вы будете проходить через любые дальнейшие обращения к хранилищу данных.
Образец заявки
В исходном коде вы найдете базовое приложение, которое мы будем использовать в дальнейшем. Это базовое приложение панели вкладок, которое использует базовые данные для хранения информации об ученике и предмете и отображает их в отдельных табличных представлениях. Вы можете добавить ученика или предмет, нажав кнопку «+» в правом верхнем углу.
Предметный класс имеет следующие атрибуты:
- Идентификатор субъекта: уникальный идентификатор, генерируется автоматически.
 - Имя субъекта: Имя субъекта, описывает, о чем предмет.
 
Студенческий класс имеет следующие атрибуты:
- Студенческий идентификатор: уникальный идентификатор, автоматически сгенерированный.
 - Имя студента: Имя и фамилия студента.
 - Идентификатор субъекта: Идентификатор субъекта, в котором они зарегистрированы. Для простоты мы предполагаем, что студент может записаться только на один предмет.
 - День зачисления: мы предполагаем, что зачисление происходит в течение 7 дней. День зачисления — это день, когда студент зашел в этот период для зачисления.
 
Откройте проект и убедитесь, что он работает. В этой серии я не использую автоматический подсчет ссылок, поэтому нам придется управлять собственной памятью. Вы должны увидеть запуск приложения с вкладками «Студенты» и «Темы». Каждая вкладка должна содержать табличное представление с некоторыми предварительно заполненными данными в каждой. Как только вы подтвердите, что все работает, мы можем перейти к добавлению CorePlot в наше приложение.

Импорт CorePlot
Первый шаг — загрузить последнюю версию CorePlot. На момент написания статьи это v1.0. Посетите домашнюю страницу основного графика и перейдите в раздел загрузок .

Загрузите почтовый файл. Размер библиотеки составляет около 140 МБ, поэтому может потребоваться некоторое время, если у вас медленное соединение.
Мы собираемся поместить файлы библиотеки CorePlot в наше приложение. Рекомендуется хранить третьи лица в папке отдельно от других файлов классов. Создайте новую папку в папке «StudentTracker» с именем «Внешние библиотеки».
Вы можете включить CorePlot в качестве установки зависимого проекта или статической библиотеки. Мне нравится включать его как установку зависимого проекта, так как он позволяет нам получить доступ к исходному коду и увидеть, как все работает в отдельной форме, просто просматривая заголовочные файлы.
-   Скопируйте каталог «CorePlot» во вновь созданную папку «Внешние библиотеки» внутри исходной папки StudentTracker. 
 -   Создайте группу в XCode под названием «Внешние библиотеки» 
 -   В искателе найдите файл проекта «CocoaTouch.xcodeproj» («CorePlot_1.0 / Source / frameworkCocoaTouch.xcodeproj») и перетащите его в группу «Внешние библиотеки» в Xcode. 
 - Выберите файл проекта приложения в xcode и нажмите на вкладку «Фазы сборки». Оттуда вам нужно добавить библиотеку CorePlot-CocoaTouch в группу «Target Dependencies».
 -   Вам также необходимо связать двоичный файл с библиотекой CorePlot.  Разверните группу «Связать двоичные файлы с библиотеками» и добавьте «libCorePlot-CocoaTouch.a» 
 -   Вам также нужно будет добавить некоторые настройки на вкладке Build Settings.  Задайте путь поиска заголовка для каталога платформы в исходном каталоге CorePlot (должно быть «$ {PROJECT_DIR} / StudentTracker / Внешние библиотеки / CorePlot_1.0 / Source / framework /»).  Установите флажок справа от текста (чтобы указать рекурсивный).  Вам также следует изменить «Всегда искать пути пользователя» на «Да». 
 - Затем добавьте «-ObjC» в поле «Другие флаги компоновщика».
 - CorePlot опирается на платформу QuartzCore, поэтому добавьте ее в качестве необходимой платформы.
 - Наконец, вам нужно будет импортировать файл «CorePlot-cocoaTouch.h» во все файлы, для которых он требуется. Нам это пока не нужно, но попробуйте добавить его в файл делегата приложения, чтобы убедиться, что все компилируется правильно.
 
Если проект успешно компилируется, тогда все хорошо!
Общие проблемы
| 
 1 
 | 
 CPTAnnotation.h file not found 
 | 
Это означает, что папка поиска пути заголовка не была правильно расположена. Убедитесь, что вы используете «Пути поиска по заголовку», а не «Framework Search Paths». Важно убедиться, что флажок установлен и «Всегда искать пути пользователя» установлен на «Да».
| 
 1 
2 
 | 
 Undefined symbols for architecture i386: 
  «_CATransform3DIsIdentity», referenced from: … 
 | 
Эти страшно выглядящие ошибки существуют, потому что QuartzCore Framework не был включен. Все, что вам нужно сделать, это включить QuartzCore Framework (в группу «Link Binary With Libraries»), и эти ошибки исчезнут!
Заворачивать
Мы получили хорошее представление о том, что может делать CorePlot и как добавить его в существующий проект. В следующий раз мы запачкаем руки и начнем строить линейный график, показывающий, сколько студентов зачислено в каждый день зачисления. Увидимся в следующий раз!




