मेरे पास कोर डेटा ग्राफ़ में 1 से अधिक रिश्ते हैं, और मैं कोरडाटा जेनरेटेड एक्सेसर्स विधि और रिश्ते को बदलने के लिए एक सरल असाइनमेंट का उपयोग करने के बीच अंतर को समझने की कोशिश कर रहा हूं। उदाहरण के लिए, Core Data Programming Guide में एक विभाग और कर्मचारी उदाहरण है। कि उदाहरण में वे CoreDataGeneratedAccessors किराए पर और आग कर्मचारियों का उपयोग करें:कोर-डेटा कोरडाटा जेनरेटेड एक्सेसर्स बनाम सरल असाइनमेंट
[aDepartment addEmployeesObject:newEmployee];
[aDepartment removeEmployeesObject:firedEmployee];
वे एक व्युत्क्रम संबंध को परिभाषित नहीं है, लेकिन कहते हैं कि "विभाग" व्युत्क्रम संबंध के लिए "कर्मचारियों" है। तो क्या निम्नलिखित एक ही चीज़ को पूरा करना चाहिए?
newEmployee.department = aDepartment
firedEmployee.department = nil;
कोर डाटा प्रोग्रामिंग गाइड के Manipulating Relationships and Object Graph Integrity खंड के अनुसार, बाद में उदाहरण स्वचालित रूप से सभी रिश्तों ग्राफ स्थिरता बनाए रखने के लिए ठीक करना चाहिए। यदि ऐसा है, तो क्या एक व्यस्त संबंध मौजूद होने पर CoreDataGeneratedAccessors का उपयोग करने का कोई कारण है? CoreDataGeneratedAccessors का उपयोग करते हुए विपरीत रिश्तों पर ग्राफ स्थिरता बनाए रखते हैं?
मार्टिन- उत्तर के लिए धन्यवाद। मेरे पास ऐसी स्थिति है जहां मैं एक बार [एक डिपार्टमेंट एडेमेंट्स ऑब्जेक्ट: नया कर्मचारी] का उपयोग कर सकता हूं, लेकिन बाद में ऐप के भीतर कॉल (भले ही यह किसी अन्य नए कर्मचारी पर है) अपडेट नहीं होता है। हालांकि, इसे newEmployee.department = aDepartment के साथ बदलकर हमेशा काम करता है। दो कॉलों के व्यवहार असंगत प्रतीत होते हैं, इसलिए मुझे परेशान है कि वे एक ही काम करना चाहते हैं। विचार? – chris
@chris - ऐसा लगता है कि आपके पास विभाग इकाई और कर्मचारी इकाई के बीच एक व्यस्त संबंध नहीं है। – TechZen
मैंने कुछ विशेष परिस्थितियों में केवल ऐसे व्यवहार का अनुभव किया जब कुछ मूल डेटा परिवर्तन प्रसंस्करण और पर्यवेक्षक कोड संबंधों को संशोधित करने में अवलोकनों को ट्रिगर किया गया।(यह मेरे कोड का एक बग था) –