2011-11-05 7 views
6

नई iCloud सेवा में कई संभावित कॉन्फ़िगरेशन हैं। मुझे कैसे पता चलेगा कि मेरे उपयोगकर्ता का डिवाइस किसी डिवाइस पर संग्रहीत करने के बजाय आईक्लाउड सर्वर पर ली गई तस्वीर भेजने के लिए कॉन्फ़िगर किया गया है?आईओएस - कैसे पता चलेगा कि iCloud फोटो स्थानांतरण क्षमता सक्षम है

+0

आप फोटो स्ट्रीम के बारे में बात कर रहे हैं या आप iCloud बैकअप के बारे में बात कर रहे हैं? –

+0

@MichaelDautermann: मैं फोटो स्ट्रीम के बारे में बात कर रहा हूं, लेकिन आपकी टिप्पणी पढ़ रहा हूं, मैं किसी भी माध्यम के बारे में बात कर रहा हूं जो आईफोन फोटो को एक पठनीय तरीके से iCloud पर भेज सकता है, इसलिए मुझे लगता है कि बैकअप उस दायरे में हैं। – Oliver

उत्तर

1

आप जानना चाहते हैं कि iCloud सक्रिय होता है चाहते हैं तो आप बस कह सकते हैं:

NSFileManager *fileManager = [NSFileManager defaultManager]; 
NSURL *cloudURL = [fileManager URLForUbiquityContainerIdentifier:nil]; 
if (cloudURL != nil) { 
    // iCloud is available 
} 

यह आपको एक संकेत दे सकते हैं यदि iCloud बिल्कुल उपलब्ध है। यदि आप चित्रों को स्टोर करने के लिए iCloud का उपयोग करना चाहते हैं तो आप अपनी खुद की सामग्री बना सकते हैं। मुझे सच में यकीन नहीं है कि आप क्या करने की योजना बना रहे हैं।

+0

मैं सिर्फ एक नोटिस प्रदर्शित करना चाहता हूं अगर मेरे ऐप से ली गई तस्वीरों को iCloud पर संग्रहीत किया जा रहा है। – Oliver

1

जब तक आप दे विधि नीचे एक वैध सर्वव्यापकता कंटेनर पहचानकर्ता YES लौटना चाहिए:

static NSString *UbiquityContainerIdentifier = @"ABCDEFGHI0.com.acme.MyApp"; 

- (BOOL) iCloudIsAvailable 
{ 
    NSFileManager *fileManager = [NSFileManager defaultManager]; 
    NSURL *ubiquityURL = [fileManager URLForUbiquityContainerIdentifier:UbiquityContainerIdentifier]; 
    return (ubiquityURL) ? YES : NO; 
} 

हालांकि, मैं पाया है कि फोन करने URLForUbiquityContainerIdentifier: किसी सत्र के दौरान समय (कई सेकंड) ले सकता है बहुत पहले समय । तो, बस सुनिश्चित करें कि आप इस पृष्ठभूमि में फोन यूआई अस्थायी रूप से ब्लॉक नहीं करने के लिए:

dispatch_queue_t backgroundQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); 
dispatch_async(backgroundQueue,^{ 
    BOOL isAvailable = [self iCloudIsAvailable] 
    /* change to the main queue if you want to do something with the UI. For example: */ 
    dispatch_async(dispatch_get_main_queue(),^{ 
     if (!isAvailable){ 
      /* inform the user */ 
      UIAlertView *alert = [[UIAlertView alloc] init...] 
      [alert show]; 
      [alert release]; 
     } 
    }); 
}); 
संबंधित मुद्दे