Swift में dispatch_once के साथ Singleton पैटर्न का उपयोग
सभी को नमस्ते! मैंने अभी Swift सीखना शुरू किया है और एक ऐसे क्लास के लिए Singleton पैटर्न लागू करने की कोशिश कर रहा हूँ जो ऐप सेटिंग्स को मैनेज करेगा। Objective-C में मैं यह सुनिश्चित करने के लिए `dispatch_once` का उपयोग करता था कि इनिशियलाइज़ेशन थ्रेड-सेफ तरीके से केवल एक बार हो। यहाँ एक उदाहरण है कि मैं पहले कैसे करता था:
```objc
+ (instancetype)sharedInstance {
static MyClass *sharedInstance = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedInstance = [[MyClass alloc] init];
});
return sharedInstance;
}
```
Swift में मैं इंटरनेट पर कई उदाहरण देखता हूँ, लेकिन वे अक्सर अलग-अलग दृष्टिकोणों का उपयोग करते हैं: ग्लोबल कॉन्स्टेंट, `private init`, `static let` वाली स्ट्रक्चर। मुझे भ्रम है कि Swift 3+ में `dispatch_once` को deprecated घोषित किया गया है। आधुनिक Swift में सही और सुरक्षित तरीके से Singleton कैसे बनाएं? क्या मुझे थ्रेड-सुरक्षा के बारे में चिंता करनी चाहिए? और Apple क्यों `dispatch_once` को छोड़कर अन्य तंत्रों का उपयोग करने की सलाह देता है?
उदाहरण