2012-04-06 8 views
5

को प्रतिस्थापित करना मेरे पास एक ऑब्जेक्ट है जो serializable लागू करता है, और मेरे पास कुछ ऑब्जेक्ट्स के साथ एक शब्दकोश है। जब मैं संकलित करता हूं और चलाता हूं, मुझे बहुत सारी चेतावनियां मिलती हैं कि मैं चाबियों के लिए मूल्यों को बदल रहा हूं। ऐसा इसलिए होता है क्योंकि जब शब्दकोश में अगली वस्तु को क्रमबद्ध करते हैं, तो यह उसी चर के साथ अपने चर को संग्रहीत करता है जैसा कि पिछले एक ने किया था, है ना? मैं इसे कैसे हल कर सकता हूं? क्या किसी भी चर को उस नाम से संग्रहीत किया गया है, तो एन्कोड WithCoder विधि में जानने का कोई तरीका है?NSKeyedArchiver चेतावनी को हल करने के लिए कैसे करें: मौजूदा मान

+0

ध्यान दें कि किसी भी कोड के बिना उत्तर देना मुश्किल है। – zaph

उत्तर

16

encodeWithCoder: में कई शब्दकोशों में कोई समस्या नहीं है जिसमें एक ही कुंजी है या एक ही कुंजी कई ऑब्जेक्ट्स में दिखाई दे रही है। आपकी समस्या अधिक संभावना है कि आप एक ही ऑब्जेक्ट में एक ही कुंजी के साथ कई चीजें एन्कोड कर रहे हैं (यानी आपकी कॉल में encodeObject:forKey:)।

+0

आपके उत्तर के लिए धन्यवाद। आप वस्तु के उसी उदाहरण में मतलब है? जैसे कि मैंने'encodeObject: forKey: 'को उसी कुंजी के साथ एक ही'encodeWithCoder:' विधि में दो बार बुलाया है? – XaitormanX

+1

हाँ, या सुपरक्लास में। –

+0

ठीक है, धन्यवाद। मैं फिर से विधि को संशोधित कर दूंगा – XaitormanX

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