इस साधारण वर्ग के साथ मुझे कंपाइलर की चेतावनी मिल रही है
x
अपने स्वयं के सेटर / गेटटर के भीतर संशोधित / उपयोग करने का प्रयास
और जब मैं इसे इस तरह उपयोग करता हूं:
var p: point = Point()
p.x = 12
मुझे एक EXC_BAD_ACCESS मिलता है। मैं स्पष्ट बैकिंग आइवर के बिना यह कैसे कर सकता हूं?
class Point {
var x: Int {
set {
x = newValue * 2 //Error
}
get {
return x / 2 //Error
}
}
// ...
}
set
कि आप उपयोग करना चाहते हैं didSet
। गुण जब आप लागू करते हैं तो उद्देश्य-सी या अन्य भाषाओं की तुलना में स्विफ्ट में अलग व्यवहार करते हैं set
। @Jack से नीचे का उत्तर देखें और @cSquirrel से एक उदाहरणdidSet