#pragma mark и настраиваемые предупреждения и ошибки в XCode

Сделаем ваш проект iOS более удобным для чтения и навигации!

Целью этой статьи является не написание кода, который компилируется быстрее, или написание более короткого кода с использованием функций более высокого порядка, а скорее хорошая практика программирования. Так повторяй за мной —

Мы тратим часы и часы на кодирование перед нашим экраном и тратим дни, месяцы или даже больше, чтобы создать продукт, который мы наконец можем показать нашему клиенту. Иногда мы так спешим завершить наш код, что по сути забываем оставлять комментарии. А затем, скажем, после долгого отпуска (для успешного запуска продукта), вы возвращаетесь к работе над своей кодовой базой и просто сидите перед этим экраном, задаваясь вопросом, зачем вообще я написал эту логику.

Признайтесь, если вы не используете комментарии в своем коде, вы, вероятно, сталкивались с такой же ситуацией, как эта.

Но суть этой статьи не в комментариях, а в #pragma mark. #pragma mark — это терминология Objective-C, и в языке программирования Swift для нее нет определенного названия. Я назову их прагмами (, поскольку их несколько #pragma mark ).

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

И если вы нажмете Без выделения (, возможно, в вашем случае будет показан метод ) на полоса перехода вверху:

Вы увидите это:

Все методы и переменные представлены здесь как коллекция без какого-либо разделения между ними, что, честно говоря, выглядит некрасиво.

Код будет работать нормально, но, честно говоря, без всех комментариев и без разделения на методы источника данных и методы делегата он выглядит немного запутанным. Итак, давайте немного очистим код, добавив комментарии и разделив методы UITableView’s dataSource и delegate, введя extension.

 

См. также:  Переменные среды в Windows

Это немного очищает наш код и обеспечивает разделение между источниками данных и методами делегата. /// поверх нашего объекта tableView на самом деле не является комментарием, а скорее разметкой документации в Xcode, которая немного отличается от комментариев. Я бы не стал объяснять это здесь, так как это только добавит длины статье.

А теперь возвращаясь к сути, мы находимся на полпути. Если мы снова нажмем на эту полосу перехода, мы теперь увидим добавленные к нему расширения к контроллеру представления с разделенными методами, но он по-прежнему не сообщает, что к чему.

Вот здесь и пригодятся наши прагмы.

Прагмы — это, можно сказать, особый тип комментариев, которые начинаются с определенного ключевого слова, а затем позволяют нам определять / записывать то, что мы хотим.

Они всегда начинаются с //, а не с ///, поскольку /// обозначает разметку документации, а // обозначает комментарии. За этим // следует MARK ключевое слово как есть, все с заглавной буквы, за которым следует : без пробелов между ними. Итак, ваше последнее ключевое слово будет выглядеть так — // MARK:. Даже если вы добавите это, вы не получите много на панели перехода, только значок с пустым пространством после него.

Магия заключается в том, что вы пишете после этого. Все, что вы напишете после этого ключевого слова , будет добавлено точно так же в полосу перехода. Но сначала, если вы хотите разделить, скажем, горизонтальной линией между разными прагмами, вам нужно добавить -. Теперь это будет выглядеть как // MARK: -. Теперь все, что вы напишете после этого, будет добавлено как таковое внутри панели перехода. Давайте повеселимся, а мы:

См. также:  Изменить дочернее состояние от родительского

Я создал // MARK: — Custom UI Elements, и тот же текст добавлен в панель перехода. Теперь давайте завершим наш View Controller и заполним его прагмами.

 

Согласитесь, после нескольких изменений наш код выглядит чище. И, прежде всего, наша полоса прыжков выглядит так —

Вот небольшое сравнение двух подходов —

Помимо MARK, у нас есть бонус в виде TODO: и FIXME:, которые также имеют разные значки на панели перехода и следуют тому же шаблону, что и прагма, которую мы определили выше: // MARK: -.

Помимо прагм, если мы хотим определить наши настраиваемые предупреждения и ошибки в XCode, мы можем использовать #error(“”) и #warning(“”) следующим образом:

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

Вы можете связаться со мной в LinkedIn ?? или можете связаться со мной через другие каналы ?

Понравилась статья? Поделиться с друзьями:
IT Шеф
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: