Anda akan mendapatkan kesalahan ini jika kelas Anda memenuhi ketentuan ini.
- Disubkelas dari
NSObject
.
- Memiliki
static let
lapangan.
- Mengakses bidang dari metode contoh melalui
dynamicType
.
Saya tidak tahu mengapa ini terjadi, tetapi Anda dapat mencoba solusi ini.
static var value: Int {
get {
return 111
}
}
Atau dalam bentuk yang lebih pendek.
static var value: Int {
return 111
}
Gunakan static var { get }
sebagai ganti static let
.
Meskipun pengambil properti dan biaya panggilannya sangat mungkin dihilangkan oleh pengoptimal LLVM dalam contoh di atas, Anda mungkin ingin menghindarinya secara eksplisit.
Jika Anda khawatir tentang biaya kalkulasi nilai tersebut, Anda dapat membuatnya sekali dan menyimpan cache seperti ini.
static var value: Int {
return cache
}
private let cache = getTheNumber()
Atau seperti ini jika ingin menyembunyikan keberadaan cache sepenuhnya.
static var value: Int {
struct Local {
static let cache = getTheNumber()
}
return Local.cache
}
func test2
deklarasi tidak diperlukan untuk memicu kesalahan, karena dari Xcode 7.3.1.