Ви отримаєте цю помилку, якщо ваш клас задовольняє цим умовам.
- Підкласи від
NSObject
.
- Має
static let
поле.
- Доступ до поля з методу екземпляра через
dynamicType
.
Я не знаю, чому це відбувається, але ви можете спробувати це вирішити.
static var value: Int {
get {
return 111
}
}
Або в коротшій формі.
static var value: Int {
return 111
}
Використовуйте static var { get }
замість static let
.
Хоча отримувач власності та вартість його дзвінків дуже імовірно усунені оптимізатором LLVM у наведеному вище прикладі, ви, можливо, захочете це явно уникати.
Якщо ви стурбовані такою вартістю обчислення вартості, ви можете створити її один раз і кешувати так.
static var value: Int {
return cache
}
private let cache = getTheNumber()
Або так, якщо ви хочете повністю приховати існування кешу.
static var value: Int {
struct Local {
static let cache = getTheNumber()
}
return Local.cache
}
func test2
Декларації не потрібно , щоб викликати помилку, так як з Xcode 7.3.1.