यदि आपकी कक्षा इन शर्तों को पूरा करती है तो आपको यह त्रुटि मिलेगी।
- से उपकृत किया गया
NSObject
।
- एक
static let
मैदान है।
- किसी इंस्टेंस विधि से फ़ील्ड को एक्सेस करता है
dynamicType
।
मुझे नहीं पता कि ऐसा क्यों होता है, लेकिन आप इस समाधान की कोशिश कर सकते हैं।
static var value: Int {
get {
return 111
}
}
या छोटे रूप में।
static var value: Int {
return 111
}
के static var { get }
बजाय का उपयोग करें static let
।
हालाँकि उपरोक्त उदाहरण में एलएलवीएम ऑप्टिमाइज़र द्वारा संपत्ति पाने वाले और इसकी कॉलिंग लागत को समाप्त करने की संभावना है, आप स्पष्ट रूप से इससे बचना चाहते हैं।
यदि आप ऐसी मूल्य गणना लागत के बारे में चिंतित हैं, तो आप इसे एक बार बना सकते हैं और इस तरह से कैश कर सकते हैं।
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 के रूप में, त्रुटि को गति प्रदान करने की जरूरत नहीं है।