Я не могу обратиться к лучшей практике в Objective C, но в C++ для конструктора хорошо выдавать исключение. Тем более, что нет никакого другого способа гарантировать, что об исключительном условии, с которым встречаются в конструкции, сообщают, не обращаясь к вызову isOK () метод.
функциональная функция блока попытки была специально разработана для поддержки отказов в конструкторе memberwise инициализация (хотя это может использоваться для регулярных функций также). Это - единственный способ изменить или обогатить информацию об исключении, которая будет брошена. Но из-за его цели первоначального проекта (используют в конструкторах) это не разрешает исключению глотаться пустой выгодой () пункт.
Я также попытался создать один из них . Фактически я пытаюсь построить его прямо сейчас. Очень огорчает, глючит. Эти ссылки могут быть полезны.
Использование фильтра записей для составления сложных запросов имеет смысл. Я пробую подход, в котором я беру строку запроса от пользователя в формате Json. Затем преобразуйте эту строку в действительный синтаксис фильтра записи, для этого потребуется проанализировать всю строку. После того как мы проанализировали строку, и если она имеет правильный синтаксис, я просто eval
ее и получаю результаты.
Вы должны посмотреть на плагин построителя условий:
http://blog.inquirylabs.com/2007/01/04/condition-builder-10-released/
Not уверен, что он удовлетворит все ваши потребности, но у меня он работает хорошо.
Railscast Railscast о WearchLogic для расширенных форм поиска показывает, как объединить Named_scopes и использовать их для сложных динамических запросов.
Вот SearchLogic Reppo.