2012-01-20 12 views
5

क्या किसी को पता है कि क्या होता है यदि आप मूल डेटा को सहेजने का प्रयास करते हैं, लेकिन पर्याप्त डिस्क स्थान शेष नहीं है?आईओएस: कोर डेटा और डिस्क स्पेस

मुझे लगता है कि सहेजने का ऑपरेशन किसी प्रकार का एनएसईआरआरआर उत्पन्न करता है? आप कैसे डिस्क स्पेस त्रुटि डिस्क लिखने के दौरान कुछ और त्रुटि नहीं बताएंगे?

उत्तर

0

आप एनएसईआरआरआर आवृत्ति से पूछकर त्रुटि दर्ज कर सकते हैं और त्रुटि डोमेन के परिणाम को पार्स कर सकते हैं। इन डोमेन में से एक शायद आप देख रहे हैं त्रुटि कोड है:

// Predefined domain for errors from most AppKit and Foundation APIs. 
FOUNDATION_EXPORT NSString *const NSCocoaErrorDomain; 

// Other predefined domains; value of "code" will correspond to preexisting values in these domains. 
FOUNDATION_EXPORT NSString *const NSPOSIXErrorDomain; 
FOUNDATION_EXPORT NSString *const NSOSStatusErrorDomain; 
FOUNDATION_EXPORT NSString *const NSMachErrorDomain; 
+0

सही, मुझे पता है कि आप त्रुटि कोड के लिए क्वेरी कर सकते हैं। मैं मुख्य रूप से पूछ रहा था कि क्या कोई इस बारे में जान सकता है या इससे पहले सामना कर सकता है क्योंकि आप वास्तव में सिम्युलेटर पर इसका परीक्षण नहीं कर सकते हैं, और उस बिंदु पर एक वास्तविक डिवाइस भरना है जहां आप जानते हैं कि अगला कोर डेटा बचाता है डिस्क स्थान पर जायेगा। – nsx241

+0

nsx241, आपको प्राप्त होने वाले प्रमुख त्रुटि कोड हैं: 'NSPersistentStoreSaveError',' NSPersistentStoreIncompleteSaveError' या 'NSSQLiteError'। बेशक, अगर आप इसे साबित करना चाहते हैं, तो आपको एक डिवाइस भरना होगा। बड़ी छवियों के साथ ऐसा करने के लिए एक नमूना ऐप लिखना आसान है। एंड्रयू – adonoho

3

डिस्क को भरने की कोशिश कर के कुछ ही घंटों के बाद, मैं पाया है कि त्रुटि आप प्राप्त है:

NSSQLiteErrorDomain = 13; 
NSUnderlyingException = "error during SQL execution : database or disk is full"; 

यह त्रुटि प्राप्त करना मुश्किल है:

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

यह उनके त्रुटि हैंडलिंग API को लागू करते समय CoreData डेवलपर्स द्वारा खराब विकल्प प्रतीत होता है। NSCoreDataErrorDomain को परिभाषित करने के बजाय वे NSCocoaErrorDomain को ओवरलोड कर रहे हैं और SQLite त्रुटि कोड को here.

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