2014-10-25 19 views
8

में स्थानीय एक्सएमएल फ़ाइल फेंकने वाली त्रुटियों के साथ कोर डेटा/iCloud बीजिंग उम्मीद है कि यह कुछ आसान है लेकिन मैं अभी तक एक फिक्स को ट्रैक करने में सक्षम नहीं हूं। मेरे पास एक ऐसा एप्लिकेशन है जिसे मैं iCloud और कोर डेटा दोनों को कार्यान्वित करने की कोशिश कर रहा हूं। मैं इसे आईओएस 7 और आईओएस 8 पर चलाने के लिए चाहता हूं।आईओएस 8

एप्लिकेशन संग्रहणीय के लिए एक चेकलिस्ट/टेबलव्यू एप्लिकेशन है।

अनिवार्य रूप से, एप्लिकेशन में पूर्व-बीज वाली एक्सएमएल फ़ाइल है जिसमें लगभग 50,000 हैं। स्क्लाइट/कोर डेटा प्रारंभ में केवल 1 आइटम रखने के लिए कॉन्फ़िगर किया गया है। उपयोगकर्ता, तालिका दृश्य से, कोर डेटा स्टोर में जोड़ने के लिए समूह का चयन कर सकते हैं (ताकि सभी 50,000 आइटम शामिल न हों)। जब उपयोगकर्ता एक समूह का चयन करता है जिसमें 1-50 आइटम होते हैं, तो यह उन आइटम्स के लिए XML को पार्स करता है और उन्हें कोर डेटा स्टोर में लिखता है। जब कोई उपयोगकर्ता उस समूह का चयन करता है जिसमें बड़ी मात्रा में फ़ाइलें होती हैं, तो यह पार्स करती है और उन्हें जोड़ती है, लेकिन फिर पार्सिंग प्रक्रिया के दौरान कुछ यादृच्छिक "यूआरएल पर कोई दस्तावेज़" त्रुटियां भी फेंकता है। एप्लिकेशन क्रैश नहीं होता है, और सभी आइटम जोड़े जाने लगते हैं, लेकिन एप्लिकेशन iCloud के साथ सिंकिंग बंद कर देता है। सटीक त्रुटि है:

__45-[PFUbiquityFilePresenter processPendingURLs]_block_invoke(439): CoreData: Ubiquity: 
Librarian returned a serious error for starting downloads Error Domain=BRCloudDocsErrorDomain Code=5 
"The operation couldn’t be completed. (BRCloudDocsErrorDomain error 5 - No document at URL)" 
UserInfo=0x7fd7f54abea0 {NSDescription=No document at URL, 
NSFilePath=/Users/zacharyfisher/Library/Developer/CoreSimulator/Devices/4B70FCFC-4704-4C83-B848-  0D52D833E28A/data/Library/Mobile Documents/iCloud~com~xxxxx~xxxxxxx/CoreData/iCloud/nobody~sim43DA22C4-427B-5FCD-9B61-90CE79638F6B/iCloud/PZbSJk1f2RNB6ucDj0Y6VqL1KgXYAxi4LcApXONjvnQ=/C45FA553-6CA0-4C26-845B-B478EF7EAD60.1.cdt, 
NSUnderlyingError=0x7fd7f54aa200 "The operation couldn’t be completed. No such file or directory"} 
with userInfo { 
NSDescription = "No document at URL"; 
NSFilePath = "/Users/zacharyfisher/Library/Developer/CoreSimulator/Devices/4B70FCFC-4704-4C83-B848-0D52D833E28A/data/Library/Mobile Documents/iCloud~com~xxxxxxx~xxxxxxx/CoreData/iCloud/nobody~sim43DA22C4-427B-5FCD-9B61-90CE79638F6B/iCloud/PZbSJk1f2RNB6ucDj0Y6VqL1KgXYAxi4LcApXONjvnQ=/C45FA553-6CA0-4C26-845B-B478EF7EAD60.1.cdt"; 
NSUnderlyingError = "Error Domain=NSPOSIXErrorDomain Code=2 \"The operation couldn\U2019t be completed. 
No such file or directory\" UserInfo=0x7fd7f5433240 {NSDescription=No such file or directory}"; 
} for these urls: (
"file:///Users/zacharyfisher/Library/Developer/CoreSimulator/Devices/4B70FCFC-4704-4C83-B848-0D52D833E28A/data/Library/Mobile%20Documents/iCloud~com~xxxxxxx~xxxxxxx/CoreData/iCloud/nobody~sim43DA22C4-427B-5FCD-9B61-90CE79638F6B/iCloud/PZbSJk1f2RNB6ucDj0Y6VqL1KgXYAxi4LcApXONjvnQ=/C45FA553-6CA0-4C26-845B-B478EF7EAD60.1.cdt" 
) 

तो मैं रूप में अच्छी तरह से एक "चाल" त्रुटि प्राप्त होगी (कभी कभी के बाद पार्स पूरा हो गया है):

[PFUbiquityTransactionLog moveFileToPermanentLocationWithError:](761): CoreData: Ubiquity: 
CoreData: Ubiquity: Error writing export log to file: file:///Users/zacharyfisher/Library/Developer/CoreSimulator/Devices/4B70FCFC-4704-4C83-B848-0D52D833E28A/data/Library/Mobile%20Documents/iCloud~com~xxxxxxx~xxxxxxx/CoreData/iCloud/nobody~sim43DA22C4-427B-5FCD-9B61-90CE79638F6B/iCloud/PZbSJk1f2RNB6ucDj0Y6VqL1KgXYAxi4LcApXONjvnQ=/ABE37211-02B7-4F20-B631-B5D91B23E9BE.1.cdt 
error: Error Domain=NSCocoaErrorDomain Code=516 "The operation couldn’t be completed. (Cocoa error 516.)" 
UserInfo=0x7fd7f49cdfd0 {NSSourceFilePathErrorKey=/Users/zacharyfisher/Library/Developer/CoreSimulator/Devices/4B70FCFC-4704-4C83-B848-0D52D833E28A/data/Library/Mobile Documents/iCloud~com~xxxxxx~xxxxxxxx/CoreData/iCloud/nobody~sim43DA22C4-427B-5FCD-9B61-90CE79638F6B/tempLogs.nosync/iCloud/PZbSJk1f2RNB6ucDj0Y6VqL1KgXYAxi4LcApXONjvnQ=/ABE37211-02B7-4F20-B631-B5D91B23E9BE.1.cdt, 
NSUserStringVariant=(
Move 
), NSDestinationFilePath=/Users/zacharyfisher/Library/Developer/CoreSimulator/Devices/4B70FCFC-4704-4C83-B848-0D52D833E28A/data/Library/Mobile Documents/iCloud~com~xxxxxx~xxxxxxx/CoreData/iCloud/nobody~sim43DA22C4-427B-5FCD-9B61-90CE79638F6B/iCloud/PZbSJk1f2RNB6ucDj0Y6VqL1KgXYAxi4LcApXONjvnQ=/ABE37211-02B7-4F20-B631-B5D91B23E9BE.1.cdt, 
NSFilePath=/Users/zacharyfisher/Library/Developer/CoreSimulator/Devices/4B70FCFC-4704-4C83-B848-0D52D833E28A/data/Library/Mobile Documents/iCloud~com~xxxxxx~xxxxxx/CoreData/iCloud/nobody~sim43DA22C4-427B-5FCD-9B61-90CE79638F6B/tempLogs.nosync/iCloud/PZbSJk1f2RNB6ucDj0Y6VqL1KgXYAxi4LcApXONjvnQ=/ABE37211-02B7-4F20-B631-B5D91B23E9BE.1.cdt, 
NSUnderlyingError=0x7fd7f497f430 "The operation couldn’t be completed. File exists"} 
userInfo: { 
NSDestinationFilePath = "/Users/zacharyfisher/Library/Developer/CoreSimulator/Devices/4B70FCFC-4704-4C83-B848-0D52D833E28A/data/Library/Mobile Documents/iCloud~com~xxxxxx~xxxxxx/CoreData/iCloud/nobody~sim43DA22C4-427B-5FCD-9B61-90CE79638F6B/iCloud/PZbSJk1f2RNB6ucDj0Y6VqL1KgXYAxi4LcApXONjvnQ=/ABE37211-02B7-4F20-B631-B5D91B23E9BE.1.cdt"; 
NSFilePath = "/Users/zacharyfisher/Library/Developer/CoreSimulator/Devices/4B70FCFC-4704-4C83-B848-0D52D833E28A/data/Library/Mobile Documents/iCloud~com~xxxxxxx~xxxxxxx/CoreData/iCloud/nobody~sim43DA22C4-427B-5FCD-9B61-90CE79638F6B/tempLogs.nosync/iCloud/PZbSJk1f2RNB6ucDj0Y6VqL1KgXYAxi4LcApXONjvnQ=/ABE37211-02B7-4F20-B631-B5D91B23E9BE.1.cdt"; 
NSSourceFilePathErrorKey = "/Users/zacharyfisher/Library/Developer/CoreSimulator/Devices/4B70FCFC-4704-4C83-B848-0D52D833E28A/data/Library/Mobile Documents/iCloud~com~xxxxxxx~xxxxxxx/CoreData/iCloud/nobody~sim43DA22C4-427B-5FCD-9B61-90CE79638F6B/tempLogs.nosync/iCloud/PZbSJk1f2RNB6ucDj0Y6VqL1KgXYAxi4LcApXONjvnQ=/ABE37211-02B7-4F20-B631-B5D91B23E9BE.1.cdt"; 
NSUnderlyingError = "Error Domain=NSPOSIXErrorDomain Code=17 \"The operation couldn\U2019t be completed. File exists\""; 
NSUserStringVariant =  (
    Move 
); 

}

ठीक करने के लिए पर कोई विचार इस? क्या मैं एक बार में बहुत से बदलाव करने की कोशिश कर रहा हूं और यह कोर डेटा/आईसीएलओड सिंकिंग को क्रैश कर रहा है? किसी भी विचार या पॉइंटर्स की सराहना की जाएगी।

जैक

+0

इसके लिए क्या लायक है। यह कोड स्थानीय स्टोर के साथ ठीक है, या आईओएस 7 में आईसीएलओड स्टोर के साथ ठीक है - यह केवल तभी होता है जब मैं समीकरण में आईओएस 8 जोड़ता हूं कि iCloud संग्रहण इन त्रुटियों को फेंकना शुरू कर देता है। धन्यवाद –

उत्तर

3

जैक, इस एक जवाब (मैं प्रतिनिधि टिप्पणी करने के लिए नहीं है) नहीं है, लेकिन यह आप सही रास्ते पर प्राप्त करने में मदद कर सकते हैं। मैं iCloud कोर डेटा को कार्यान्वित कर रहा हूं और आईओएस 8 के साथ एक ही समस्या की तरह दिख रहा हूं ... समान "यूआरएल पर कोई दस्तावेज़ नहीं" त्रुटि (मेरे लिए कोई चाल त्रुटि नहीं), और डेटा सिंक में एक ही ब्रेकडाउन। दो टिप्पणियों:

  • जब मैं दो उपकरणों पर मेरे एप्लिकेशन चला रहा हूँ, कोर डेटा सिंक शुरू में कुछ ही मिनटों के और कुछ अद्यतन के लिए बहुत अच्छी तरह से काम करता है ... की तरह। तब मुझे "यूआरएल पर कोई दस्तावेज़ नहीं" त्रुटि मिलती है।

  • मेरा .sqlite डेटाबेस बहुत छोटा है और अपडेट जो मैं करने की कोशिश कर रहा हूं वह मामूली है (उदा। एक नई इकाई जोड़ना), इसलिए मुझे नहीं लगता कि फ़ाइल आकार या अद्यतन जटिलता कारक हैं।

  • डिवाइस पर जहां ये त्रुटियां लॉगिंग कर रही हैं, स्टोर iCloud से परिवर्तन आयात करना बंद कर देता है। लेकिन मैं उस डिवाइस पर जो बदलाव करता हूं वह दूसरे डिवाइस पर जारी रहता है। तो प्रभाव एक तरफा टूटने की तरह है।

उम्मीद है कि इससे मदद मिलती है। आपके द्वारा किए गए किसी भी प्रगति पर पोस्ट की सराहना करेंगे। मैं इसके साथ कई हफ्तों तक कुश्ती कर रहा हूं और iCloud डेटा सिंक के बिना ऐप को छोड़ने और शिपिंग करने के करीब हूं (जो सार्वभौमिक है)।

+2

हाँ, मुझे एक ही समस्या है, यह सुनिश्चित नहीं है कि इसे कोर्डटा से कुछ और करने के लिए या तो इसे हल करने के लिए कैसे हल करें:/ –

+0

मैं वही सटीक समस्या देख रहा हूं और इसलिए मेरे उपयोगकर्ता भी हैं। सिंक केवल एक ही रास्ता जाता है, फिर सभी को एक साथ रोक देता है। मुझे एक ही त्रुटि संदेश मिलता है। – ChemDev

+0

मेरे पास एक ही समस्या है। इस बिंदु पर एक डेवलपर के रूप में शेन रहने का एकमात्र समाधान एक विकल्प का उपयोग करना है।कोर डेटा मुद्दा नहीं है, यह अंतर्निहित iCloud स्टैक है। मैं क्लाउडकिट या एप्लिकेशन-विशिष्ट कस्टम और सरल सिंक स्टैक के साथ एक अन्य सेवा के लिए एक कस्टम 'NSIncrementalStore 'लिखने का सुझाव देता हूं। –