2012-01-29 10 views
6

जब हवाई जहाज मोड या किसी अन्य राज्य में जहां नेटवर्क का उपयोग उपलब्ध नहीं है, NSFileManager के URLForUbiquityContainerIdentifier: वापसी शून्य पर कॉल करेगा?क्या URLForUbiquityContainerIdentifier: नेटवर्क पहुंच उपलब्ध नहीं होने पर शून्य वापस आती है?

यह करने के लिए एक सवाल अनुवर्ती है: अगर URLForUbiquityContainerIdentifier: को यह कॉल शून्य वापस नहीं करता है बल्कि एक मान्य URL लौटाता है जब नेटवर्क पहुँच उपलब्ध नहीं है इस क्लाउड आधारित दस्तावेज़ों को ऑफ़लाइन पहुंचने का एक तरीका है?

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

मैं इसे स्वयं जांचता हूं लेकिन जो मैं समझता हूं उससे मुझे एक वास्तविक डिवाइस पर परीक्षण करना होगा और इस समय डिवाइस पर परीक्षण करना मेरे लिए संभव नहीं है। धन्यवाद!

उत्तर

5

UbiquityContainer एक स्थानीय स्टोरेज कंटेनर है जिसमें आपके द्वारा iCloud से अनुरोध किए गए दस्तावेज़ शामिल हैं। यह कंटेनर तब उपलब्ध होता है जब नेटवर्क नहीं होता है। निम्न उदाहरण

NSURL *ubiq = [[NSFileManager defaultManager] 
    URLForUbiquityContainerIdentifier:nil]; 
if (ubiq) { 
    NSLog(@"iCloud access at %@", ubiq); 
    // TODO: Load document... 
} else { 
    NSLog(@"No iCloud access"); 
} 

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

iCloud सेटअप पर एक शानदार लेख है। http://www.raywenderlich.com/6015/beginning-icloud-in-ios-5-tutorial-part-1

+1

धन्यवाद! मैं अपने सिर को दिनों के लिए लपेटने की कोशिश कर रहा हूं (जिसे मैं हाहा स्वीकार करने में खुश नहीं हूं)। मुझे लगता है कि मेरा भ्रम इस तथ्य पर आधारित था कि मैंने सोचा था कि ubiquityContainer क्लाउड में एक स्थान था, न कि स्थानीय भंडारण कंटेनर। यह एक मौलिक अवधारणा थी जिसे मैं समझ नहीं रहा था। एक बार फिर धन्यवाद! –

+0

निश्चित रूप से, मैंने वास्तव में iCloud UbiquityContainers पर किसी अन्य का उत्तर दिया। मुझे जिक्र करना चाहिए कि NSFileManager अवरुद्ध हो सकता है और इसकी एक अलग कतार में चलाने की अनुशंसा की जाती है। यह उत्तर देखें: http://stackoverflow.com/questions/9050359/should-urlforubiquitycontaineridentifier-be-called-in-a-thread-outside-the-main/9051105#9051105 – MobileOverlord

+1

अवरोधन के बारे में अच्छा बिंदु - यह मजाकिया है, क्योंकि यदि आप ऐप्पल से उदाहरण दस्तावेज़ों को देखते हैं या वेबसाइट से कोड को संदर्भित करते हैं तो आपने URLForUbiquityContainerIdentifier को कॉल के ऊपर संदर्भित किया है मुख्य थ्रेड पर हैं। आपको लगता है कि अगर यह एक संभावित मुद्दा था, तो ऐप्पल इसका ध्यान रखेगा, है ना? –

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