Você receberá esse erro se sua turma atender a essas condições.
- Subclassificado de
NSObject
.
- Tem um
static let
campo
- Acessa o campo a partir de um método de instância via
dynamicType
.
Não sei por que isso acontece, mas você pode tentar esta solução alternativa.
static var value: Int {
get {
return 111
}
}
Ou em forma mais curta.
static var value: Int {
return 111
}
Use em static var { get }
vez de static let
.
Embora o getter de propriedades e seu custo de chamada provavelmente sejam eliminados pelo otimizador LLVM no exemplo acima, convém evitá-lo explicitamente.
Se você estiver preocupado com esse custo de cálculo de valor, poderá criá-lo uma vez e fazer o cache assim.
static var value: Int {
return cache
}
private let cache = getTheNumber()
Ou assim, se você deseja ocultar completamente a existência do cache.
static var value: Int {
struct Local {
static let cache = getTheNumber()
}
return Local.cache
}
func test2
declaração não é necessária para acionar o erro, a partir do Xcode 7.3.1.