हाय हर साल स्टैक ओवरव्लो पढ़ रहा है, अब मैंने शामिल होने का निर्णय लिया है। मैं इसे हल करने के लिए संघर्ष कर रहा हूं:KVO addObserver CoreData ऑब्जेक्ट के एक-से-कई रिश्ते
मेरे पास "डिपो" इकाई है जिसमें दो से अधिक संबंध "व्यक्ति" और "ट्रक" हैं। मैं कब देखना चाहता हूं, "डिपो" ऑब्जेक्ट दिया गया है, रिश्तों में से एक में परिवर्तन (सम्मिलित, निकालें) हैं (और एक में समझें)।
वर्तमान में मैं यह कर रहा हूं: observeValueForKeyPath
कहा जाता हो जाता है
[mydepot addObserver:self forKeyPath:@"Trucks" options:NSKeyValueObservingOptionNew context:nil];
और
[mydepot addObserver:self forKeyPath:@"Persons" options:NSKeyValueObservingOptionNew context:nil];
लेकिन हर कुछ दो संबंधित संग्रह में से एक में बदल जाता है, दो बार (प्रत्येक के लिए एक समय मुख्यपथ)।
क्या मैं इसे गलत कर रहा हूं? "परिवर्तन" को देखते हुए, (OptionOld के साथ देखकर) कोई अप्रत्याशित परिवर्तन नहीं दिखाता है (जब मैं व्यक्तियों को बदलता हूं, ट्रक बदल नहीं जाते हैं) लेकिन अधिसूचना अभी भी उठाई गई है।
धन्यवाद, पिएत्रो
संपादित करें: ऐसा लगता है कि दोनों बार "परिवर्तन" शब्दकोष "नया" क्षेत्र में पूरे संबंध होता है। (जाहिर है एक बार व्यक्तियों और एक बार ट्रक)
संपादित 2: क्योंकि यह सरल गुणों को भी सुरक्षित करता है, क्या यह प्रबंधितक्टएक्स सेव ऑपरेशन से संबंधित हो सकता है? जैसे कि जब आप सहेजते हैं, तो संपूर्ण ऑब्जेक्ट को बदला जाता है ..
+1 सहमत हैं। पूरे संग्रह को एक अलग संग्रह के साथ बदलने के बजाय मूल्यों के मौजूदा संग्रह को संशोधित करने के संदर्भ में सोचें। – Caleb
धन्यवाद, हाँ, लेकिन डिपो कोरडाटा एनएसएमएनेज्ड ऑब्जेक्ट सबक्लास है इसलिए पहले से ही केवीओ अनुपालन एक्सेसर्स को लागू करना चाहिए। और मैं जो कहता हूं वह कर रहा हूं, तथ्यों के मामले में मैं केवल रिश्ते में एक नई ट्रक इकाई जोड़ रहा हूं, कभी भी पूरे सेट (रिश्ते) को प्रतिस्थापित/स्थापित नहीं कर रहा हूं। यही कारण है कि मैं समझ नहीं सकता। जैसे कि मैं दो कुंजीपैथ का निरीक्षण करता हूं उदाहरण के लिए "ट्रकों" और "वर्गमीटर" (यह कोई रिश्ते नहीं है), यदि "वर्गमीटर" संशोधित किया गया है, तो दो अधिसूचनाएं ट्रिगर होती हैं ("ट्रकों" केपीएथ के लिए भी एक) – Peterdeka
मुख्य पथ इस पर निर्भर हो सकते हैं एक और ... शायद यही हो रहा है? अन्यथा आपको कहीं और – nielsbot