选项
我有一个' mastermodel'从我的大多数模型继承,所以他们可以有配置常量
class MasterModel {
static let apiKey = (drop.config["app","thinx-api-key"]?.string)!
static let baseURL = (drop.config["app","base-URL"]?.string )!
}
注意力量展开:( 在这种情况下,它并不是一个非常大的问题,因为程序在没有这些常数的情况下不会开始,但无论如何我还想要清理它。
保护语句只能在函数中使用,而不能在类定义中使用。使用错误捕获定义这些常量的正确方法是什么
答案 0 :(得分:2)
您可以为它们分配计算闭包以检测配置错误
class MasterModel
{
static let apiKey:String = {
if let result = drop.config["app","thinx-api-key"]?.string
{ return result }
print("MasterModel.apiKey error, missing app/thinx-api-key")
return ""
}() // the () here makes the closure execute and return the value
// ...
}
答案 1 :(得分:0)
如果您希望程序在实际使用该属性时崩溃,则可以使用计算/惰性程序:
class MasterModel {
static var apiKey: String {
get {
return drop.config["app","thinx-api-key"]?.string)!
}
}
...
}
如果在drop
成功初始化之前调用静态初始化程序,这可能很有用。