2015-09-25 6 views
6

कैसे करता है। डेलेटे स्वयं वास्तव में काम करता है? डॉक्स का कहना है:सीकेआरफरेंस। डिलीट स्वयं की विशेषता का कोई प्रभाव नहीं है

संदर्भ वस्तु की कार्रवाई CKReferenceActionDeleteSelf, संदर्भ-अर्थात का लक्ष्य, रिकॉर्ड संदर्भ के recordID में संग्रहीत करने के लिए सेट किया जाता है स्रोत रिकॉर्ड के मालिक संपत्ति-हो जाता है। लक्ष्य (मालिक) रिकॉर्ड को हटाने से सभी इसके स्रोत रिकॉर्ड हटा दिए जाते हैं।

लेकिन मेरी धारणा यह है कि एक लक्ष्य को हटाने से हमेशा स्रोत को हटाया नहीं जाएगा। और जब यह कंटेनर में रहता है, तो यह काफी परेशान होता है, क्लाइंट इसे डाउनलोड करता है, और उम्मीद करता है कि संदर्भ बिंदु कहीं भी है, लेकिन क्लाइंट पर सर्वर डेटा स्टोर के टुकड़े का निर्माण करते समय लक्ष्य मौजूद नहीं है?

आप इस मामले का इलाज कैसे करते हैं? आप उस तरह के रिकॉर्ड अनदेखा करते हैं? या समय-समय पर आप क्लाउडकिट स्टोरेज को देखते हैं, उन्हें हटाने के लिए भ्रष्ट रिकॉर्ड खोज रहे हैं?

या रिकॉर्ड हटाने की बजाय यह एक हटाए गए राज्य में एक विशेषता सेट करना बेहतर है, लेकिन इसे डेटाबेस में रखें?

+0

आप .DeleteSelf पर भरोसा करने में सक्षम होना चाहिए। यदि यह काम नहीं करता है, तो आपको http://bugreport.apple.com पर एक बग रिपोर्ट बनाना चाहिए यदि आप इस बग के लिए वर्कअराउंड बनाना चाहते हैं और चूंकि आप उस पल पर क्या होता है जब आप इसे हटा रहे हैं रिकॉर्ड मुझे लगता है कि उसी पल में सभी संबंधित रिकॉर्ड्स मैन्युअल रूप से हटाने के लिए सबसे अच्छा होगा। –

+0

मैं भी अंतःविषय व्यवहार देख रहा हूं। डेलेटेल्फ –

+0

मैं इस समस्या में भाग रहा हूं। मेरे पास मास्टर टेबल के साथ एक से कई रिश्तों के साथ कई तालिकाओं हैं। सार्वजनिक डेटाबेस में, मैं मास्टर रिकॉर्ड और फिर अन्य तालिकाओं में कुछ रिकॉर्ड जोड़ता हूं। यदि यह सब एक उपयोगकर्ता से किया जाता है और कोई अन्य उपयोगकर्ता डेटा तक पहुंच नहीं पाता है, तो मास्टर रिकॉर्ड परिणामों को हटाए जाने वाले सभी अन्य रिकॉर्ड्स में हटाए जाते हैं। लेकिन एक बार जब कोई अन्य डेटा डेटा तक पहुंच जाता है, तो कैस्केड डिलीट नहीं होता है और केवल मास्टर रिकॉर्ड हटा दिया जाता है। यदि आप इस सुविधा पर भरोसा नहीं कर सकते हैं तो व्यर्थ लगता है। – rmaddy

उत्तर

0

यदि आप क्लाउडकिट डैशबोर्ड के माध्यम से हटा रहे हैं तो आपको संदर्भ के दूसरे छोर को देखने के लिए रिकॉर्ड प्रकारों को स्विच करने से पहले प्रतीक्षा करनी होगी। वास्तव में हटाए जाने से पहले आपने स्विच की संभावना से अधिक। डिलीट वास्तव में समाप्त होने पर जांचने के लिए आप नेटवर्क टैब पर सफारी के वेब इंस्पेक्टर का उपयोग कर सकते हैं। एकाधिक रिकॉर्ड हटाने में बहुत लंबा समय लगता है।

1

मैं बस थोड़ी देर के लिए यह एक के साथ संघर्ष किया और मैंने सोचा कि मैं अपने निष्कर्ष साझा करेंगे ...

यह मौलिक रूप से एक अनुमति मुद्दा है। कैस्केडिंग डिलीट केवल तभी काम करेगा जब रिकॉर्ड्स को हटाने वाले उपयोगकर्ता को हटाए जाने वाले सभी रिकॉर्ड्स को 'लिखना' अनुमतियां होंगी। तो क्लाउडकिट डैशबोर्ड में, कैस्केडिंग डिलीट केवल डेवलपर के iCloud खाते के साथ बनाए गए रिकॉर्ड के लिए काम करेगा।

यदि आपको उन रिकॉर्ड्स को हटाने की आवश्यकता है जो उन्हें हटाने वाले उपयोगकर्ता से संबंधित नहीं हैं, तो आप सुरक्षा के तहत रिकॉर्ड प्रकार के लिए 'लिखें' अनुमतियां जोड़ सकते हैं।

enter image description here

+0

मेरे रिकॉर्ड एक ही उपयोगकर्ता द्वारा बनाए गए एक ही क्षेत्र में हैं और संदर्भ अभी भी हटाए नहीं गए हैं। मुझे लगता है कि यह क्लाउडकिट डैशबोर्ड में एक बग है। और हाँ, यह अभी भी 2017 के अंत में हो रहा है। :) –

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