मान लें कि मेरे पास नेटवर्क कनेक्शन का प्रतिनिधित्व करने वाली कुछ वस्तुएं हैं। एक बार ये कनेक्शन डिस्कनेक्ट हो जाने पर, संबंधित ऑब्जेक्ट गायब हो जाते हैं। मैं एक कनेक्शन ऑब्जेक्ट पर लटका नहीं चाहता जो अब कनेक्ट नहीं है।कमजोर संदर्भ कुंजी के साथ स्विफ्ट शब्दकोश?
मैं भी एक शब्दकोश का उपयोग कर इन कनेक्शन के साथ कुछ डेटा जोड़ना चाहता हूं। इसलिए मैं कोड हो सकता है:
class Connection { ... }
class Metadata { ... }
var metadata: [Connection: Metadata] = [:]
लेकिन इसके बाद के संस्करण कोड का मतलब है कि शब्दकोश Connection
वस्तुओं है जो मैं नहीं चाहता के लिए संदर्भ रखेंगे। Connection
ऑब्जेक्ट गायब होने पर, मैं संबंधित प्रविष्टियों को हटा दिया जाना चाहूंगा, आदर्श रूप से स्वचालित रूप से।
तो मैं करने की कोशिश की:
var metadata: [weak Connection: Metadata] = [:]
लेकिन यह काम नहीं करता। इसका एक अच्छा वैकल्पिक समाधान क्या है?
अच्छा लेख यहां: http://nshipster.com/nshashtable-and-nsmaptable/ – matt
सर्वर पर स्विफ्ट लिखने वाले सभी को बस एक नोट: 'एनएसएमएपीटेबल' और 'एनएसएचशटेबल' लिनक्स पर मौजूद नहीं है, तो आप रॉब के जवाब जैसे दृष्टिकोण का उपयोग करने की आवश्यकता है। – Zoyt