युक्त किसी कारण यह नमूना कोड काम करता है के लिए कार्रवाई करने के लिए विफल रहता है:CFPropertyListCreateDeepCopy सरणी/शब्दकोश NSNull
NSArray *immutable = @[ @"a", @"b", @"c" ];
NSMutableArray *mutable = (__bridge id)CFPropertyListCreateDeepCopy(kCFAllocatorDefault, (__bridge CFArrayRef)immutable, kCFPropertyListMutableContainers);
और इस कोड को रूपांतरण के परिणामस्वरूप nil
पैदा करता है:
NSArray *immutable = @[ @"a", [NSNull null], @"c" ];
NSMutableArray *mutable = (__bridge id)CFPropertyListCreateDeepCopy(kCFAllocatorDefault, (__bridge CFArrayRef)immutable, kCFPropertyListMutableContainers);
मैं पता लगाने की कोशिश इस फ़ंक्शन का उपयोग करते समय NSNull
का कोई उल्लेख नहीं किया जा रहा है। मुझे संदेह है कि विधि के तरीके से जांच करने के लिए इसका कुछ तरीका है कि क्या संपत्ति उत्परिवर्तनीय है या नहीं, लेकिन मैं वास्तव में तथ्यों के साथ इसे वापस नहीं कर सकता।
कोई विचार?
क्या आप एक शून्य मूल्य को स्वीकार करने के लिए वैकल्पिक या कामकाज के बारे में जानते हैं, क्योंकि हम इसे किसी JSON API से डेटा पर उपयोग कर रहे हैं जिसमें कुछ स्थानों पर 'शून्य' है? इस स्रोत के अनुसार – Sathvik
http://www.opensource.apple.com/source/CF/CF-1153.18/CFPropertyList.c (CFPropertyListRef CFPropertyListCreateDeepCopy के लिए खोजें) यह काफी संभव नहीं है। हो सकता है कि पूर्वनिर्धारित स्थिरता के साथ शून्य को प्रतिस्थापित करने का प्रयास करें जो आपके डेटा सेट में आने की संभावना नहीं है? –