29
ใช้แบบจำลอง dispatch_once ซิงเกิลตันใน Swift
ฉันกำลังพยายามหาโมเดลซิงเกิลที่เหมาะสมสำหรับการใช้งานใน Swift จนถึงตอนนี้ฉันสามารถรับแบบจำลองความปลอดภัยที่ไม่มีเธรดทำงานเป็น: class var sharedInstance: TPScopeManager { get { struct Static { static var instance: TPScopeManager? = nil } if !Static.instance { Static.instance = TPScopeManager() } return Static.instance! } } การตัดอินสแตนซ์ซิงเกิลตันในโครงสร้างแบบคงที่ควรอนุญาตอินสแตนซ์เดี่ยวที่ไม่ขัดแย้งกับอินสแตนซ์ซิงเกิลโดยไม่มีแผนการตั้งชื่อที่ซับซ้อนและควรทำให้สิ่งต่างๆเป็นส่วนตัวอย่างเป็นธรรม แน่นอนว่ารุ่นนี้ไม่ปลอดภัยสำหรับเธรด ดังนั้นฉันจึงพยายามที่จะเพิ่มdispatch_onceสิ่งทั้งหมด: class var sharedInstance: TPScopeManager { get { struct Static { static var instance: TPScopeManager? = nil …