необязательные параметры в определении класса
У меня есть «мастер-модель», от которой унаследовано большинство моих моделей, поэтому они могут иметь константы конфигурации.
class MasterModel {
static let apiKey = (drop.config["app","thinx-api-key"]?.string)!
static let baseURL = (drop.config["app","base-URL"]?.string )!
}
Обратите внимание на принудительное развертывание :(
Операторы защиты разрешены только в функциях, но не в определении класса. Как правильно определять эти константы с перехватом ошибок?
thinx-api-key
иbase-URL
жестко запрограммированы, просто принудительно разверните дополнительные параметры. В этом случае отсутствие ключа означает ошибку дизайна. Или добавьте где-нибудьassert
строк. - person vadian   schedule 28.04.2017?? ""
. - person Sulthan   schedule 29.04.2017!
и разверните необязательное. Меня очень беспокоит черно-белое предложение Никогда не принудительно разворачивать опции, это зло. Всегда используйте необязательные привязки. Существует большая разница между потенциальной ошибкой времени выполнения и ошибкой проекта. Если вы собираетесь получить доступ к файлу в пакете приложений, используйте!
. Если вы собираетесь преобразовать ячейку табличного представления в настраиваемый класс, используйте!
. Если вы извлекаете определенный компонент даты из даты, используйте!
. В этих случаях сбой приветствуется, потому что он указывает на ошибку проектирования, которая не должна происходить. - person vadian   schedule 29.04.2017!
в этом случае. Я предлагаю только?? ""
как потенциальную альтернативу. - person Sulthan   schedule 29.04.2017