2014-07-25 10 views
7

NSSet स्विफ्ट में सेट बनाने के लिए अपनी वस्तुओं को मजबूत संदर्भ रखती है तो उद्देश्य सी समाधान NSHashTable.weakObjectsHashTable) का उपयोग करने (एक लाएक कमजोर संदर्भ

NSHashTable* mySet = [NSHashTable weakObjectsHashTable]; 
[mySet addObject:anyOldObject]; 
[mySet count]; //returns 1 
[mySet containsObject:anyOldObject]; //returns true 

तेज में हालांकि इस काम करने के लिए प्रतीत नहीं होता था

var mySet = NSHashTable.weakObjectsHashTable() 
mySet.addObject(anyOldObject) 
mySet.count //returns 1 
mySet.containsObject(anyOldObject) //returns false 

मुझे क्या याद आ रही है? या यह एक बग है?

+0

क्या आप mySet.allObjects को एक गैर-खाली सरणी वापस करने की अपेक्षा करेंगे? क्योंकि ऐसा प्रतीत नहीं होता है। –

+0

हाँ मैं इसे पाठक के लिए एक अभ्यास के रूप में छोड़ रहा था :) मुझे यह बिल्कुल नहीं मिला – Hammer

+0

नहीं, न तो मुझे। मैं कमजोर ऑब्जेक्ट्स हैशटेबल के बारे में ज्यादा जानने का नाटक नहीं कर सकता, लेकिन यह निश्चित रूप से * लगता है * छोटी गाड़ी। –

उत्तर

0

Xcode6b5 पर और किसी भी ऑल्डऑब्जेक्ट के रूप में एक स्ट्रिंग का उपयोग करके, मैं एक वास्तविक सत्य होने में सक्षम हूं। 6 बी 4 में कुछ बगें थीं जो वैकल्पिक मूल्यों को दुभाषिया में वापस आने से रोकती थीं जिसका मतलब था कि उन्हें आक्रामक रूप से साफ किया जा रहा था - यह ऐसी समस्या हो सकती है जो यहां पर समान प्रभाव डालती है। यह देखने के लिए फिर से प्रयास करना उचित है कि क्या आपके पास नवीनतम बीटा में समान व्यवहार है या नहीं।

+0

ओपी के बारे में नहीं पता, लेकिन मुझे अभी भी आईओएस 9.0 बीटा के साथ इन मुद्दों का सामना करना पड़ रहा है। विस्फोटित चीज सिर्फ इसकी सामग्री पर नहीं लगती है। – Ash

संबंधित मुद्दे