Как создавать собственные директивы компиляции в Swift - PullRequest
0 голосов
/ 29 мая 2020
• 1000 данный фильтр. Например: вы не можете применить фильтр .regularStudents к сотрудникам.
    let students = fetch(Employee.self, filter: .regularStudents) // a compile error should be throw

Я думал об использовании #if и #error() для выдачи ошибки компиляции, но я не мог найти решение для объявления пользовательских директив компилятора в быстром режиме. В Objective C я бы сделал что-то вроде:

#define CHECK(param1, param2) param1 == param2

Есть ли способ сделать это #define быстро?

Обновить

Для настойчивости я использую Realm, который дает мне возможность получать объекты fech из данной таблицы в зависимости от типа. Фильтр .all работает со всеми типами, поскольку он выбирает все объекты для данного типа. Проблема возникает в последних двух фильтрах, что зависит от указанного типа c. Например, .regularStudents работает только для типа Student, для любого другого типа будет sh, поскольку свойство regular является только частью объекта student.

...