deinit {
// perform the deinitialization
}
เป็นคำตอบที่ถูกต้องสำหรับ Swift "dealloc"
อย่างไรก็ตามเป็นการดีที่จะชี้ให้เห็นใหม่ใน iOS 9 ที่ NSNotificationCenter ไม่จำเป็นต้องทำความสะอาดอีกต่อไป!
https://developer.apple.com/library/content/releasenotes/Foundation/RN-FoundationOlderNotes/index.html#X10_11Notes
NSNotificationCenter
ใน OS X 10.11 และ iOS 9.0 NSNotificationCenter และ NSDistributedNotificationCenter จะไม่ส่งการแจ้งเตือนไปยังผู้สังเกตการณ์ที่ลงทะเบียนอีกต่อไปซึ่งอาจถูกจัดสรรคืน หากผู้สังเกตการณ์สามารถจัดเก็บเป็นข้อมูลอ้างอิงศูนย์ zero-อ่อนแอหน่วยเก็บข้อมูลพื้นฐานจะเก็บผู้สังเกตการณ์เป็นศูนย์อ้างอิงอ่อนหรือถ้าวัตถุไม่สามารถจัดเก็บอย่างอ่อนแอ (เช่นมีกลไกรักษา / ปล่อยที่กำหนดเองที่จะป้องกันไม่ให้รันไทม์ จากความสามารถในการจัดเก็บวัตถุอย่างอ่อน) มันจะจัดเก็บวัตถุเป็นการอ้างอิง zeroing ที่ไม่อ่อนแอ ซึ่งหมายความว่าผู้สังเกตการณ์ไม่จำเป็นต้องยกเลิกการลงทะเบียนในวิธีการจัดสรรคืน การแจ้งเตือนครั้งต่อไปที่จะถูกส่งไปยังผู้สังเกตการณ์นั้นจะตรวจจับการอ้างอิงที่เป็นศูนย์และยกเลิกการลงทะเบียนผู้สังเกตการณ์โดยอัตโนมัติ หากวัตถุที่สามารถอ้างอิงการแจ้งเตือนอย่างอ่อนจะไม่ถูกส่งไปยังผู้สังเกตการณ์ในระหว่างการยกเลิกการจัดสรร พฤติกรรมก่อนหน้านี้ของการรับการแจ้งเตือนระหว่างการ dealloc ยังคงปรากฏอยู่ในกรณีที่ผู้สังเกตการณ์อ้างอิงที่ไม่เป็นศูนย์อย่างอ่อน ปิดกั้นผู้สังเกตการณ์ผ่านทาง - [NSNotificationCenter addObserverForName: object: que: usingBlock] วิธีการยังคงต้องยกเลิกการลงทะเบียนเมื่อไม่ได้ใช้งานอีกต่อไปเนื่องจากระบบยังคงมีการอ้างอิงที่แข็งแกร่งกับผู้สังเกตการณ์เหล่านี้ การถอดผู้สังเกตการณ์ (ทั้งที่อ้างอิงน้อยหรือเป็นศูนย์อ้างอิง) ยังคงได้รับการสนับสนุนก่อนกำหนด CFNotificationCenterAddObserver ไม่สอดคล้องกับลักษณะการทำงานนี้เนื่องจากผู้สังเกตอาจไม่ใช่วัตถุ ปิดกั้นผู้สังเกตการณ์ผ่านทาง - [NSNotificationCenter addObserverForName: object: que: usingBlock] วิธีการยังคงต้องยกเลิกการลงทะเบียนเมื่อไม่ได้ใช้งานอีกต่อไปเนื่องจากระบบยังคงมีการอ้างอิงที่แข็งแกร่งกับผู้สังเกตการณ์เหล่านี้ การถอดผู้สังเกตการณ์ (ทั้งที่อ้างอิงน้อยหรือเป็นศูนย์อ้างอิง) ยังคงได้รับการสนับสนุนก่อนกำหนด CFNotificationCenterAddObserver ไม่สอดคล้องกับลักษณะการทำงานนี้เนื่องจากผู้สังเกตอาจไม่ใช่วัตถุ ปิดกั้นผู้สังเกตการณ์ผ่านทาง - [NSNotificationCenter addObserverForName: object: que: usingBlock] วิธีการยังคงต้องยกเลิกการลงทะเบียนเมื่อไม่ได้ใช้งานอีกต่อไปเนื่องจากระบบยังคงมีการอ้างอิงที่แข็งแกร่งกับผู้สังเกตการณ์เหล่านี้ การถอดผู้สังเกตการณ์ (ทั้งที่อ้างอิงน้อยหรือเป็นศูนย์อ้างอิง) ยังคงได้รับการสนับสนุนก่อนกำหนด CFNotificationCenterAddObserver ไม่สอดคล้องกับลักษณะการทำงานนี้เนื่องจากผู้สังเกตอาจไม่ใช่วัตถุ
แต่ให้สังเกตจุดด้านล่างเกี่ยวกับการอ้างอิงที่แข็งแกร่งดังนั้นคุณอาจต้องกังวลเกี่ยวกับการล้างข้อมูลต่อไป ... ?