คำถามติดแท็ก didset

11
จุดประสงค์ของ willSet และ didSet ใน Swift คืออะไร?
Swift มีไวยากรณ์การประกาศคุณสมบัติที่คล้ายกับ C #: var foo: Int { get { return getFoo() } set { setFoo(newValue) } } อย่างไรก็ตามมันยังมีwillSetและdidSetการกระทำ สิ่งเหล่านี้ถูกเรียกก่อนและหลังตัวเรียกถูกตั้งค่าตามลำดับ จุดประสงค์ของพวกเขาคืออะไรโดยพิจารณาว่าคุณสามารถมีรหัสเดียวกันภายในตัวตั้งค่าได้

8
เป็นไปได้ไหมที่จะอนุญาตให้เรียกใช้ didSet ในระหว่างการกำหนดค่าเริ่มต้นใน Swift
คำถาม เอกสารของ Appleระบุว่า: ผู้สังเกตการณ์ willSet และ didSet จะไม่ถูกเรียกเมื่อคุณสมบัติถูกเริ่มต้นครั้งแรก พวกเขาจะถูกเรียกเฉพาะเมื่อค่าของคุณสมบัติการตั้งค่านอกบริบทการเริ่มต้น เป็นไปได้ไหมที่จะบังคับให้เรียกสิ่งเหล่านี้ในระหว่างการเริ่มต้น? ทำไม? สมมติว่าฉันมีชั้นนี้ class SomeClass { var someProperty: AnyObject { didSet { doStuff() } } init(someProperty: AnyObject) { self.someProperty = someProperty doStuff() } func doStuff() { // do stuff now that someProperty is set } } ฉันสร้างวิธีการdoStuffเพื่อให้การประมวลผลมีความกระชับมากขึ้น แต่ฉันต้องการเพียงแค่ประมวลผลคุณสมบัติภายในdidSetฟังก์ชัน มีวิธีบังคับให้สิ่งนี้เรียกในระหว่างการเริ่มต้นหรือไม่? ปรับปรุง ฉันตัดสินใจที่จะลบเครื่องมืออำนวยความสะดวกสำหรับชั้นเรียนของฉันและบังคับให้คุณตั้งค่าคุณสมบัติหลังจากเริ่มต้น …
217 ios  swift  didset 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.