Frage

Hier ist der Satz von Apple Docs: "Wenn iCloud nicht konfiguriert ist, fragen Sie Benutzer, ob sie ihn konfigurieren möchten (und übertragen Sie sie vorzugsweise so, dass sie Einstellungen starten, wenn sie iCloud konfigurieren möchten)."

Wie kann ich prüfen, ob iCloud konfiguriert ist oder nicht, und wie starten Sie Einstellungen für iCloud?

War es hilfreich?

Lösung

Bearbeiten:
Wenn Sie auf iOS6 oder höher abzielen, können Sie verwenden [[NSFileManager defaultManager] ubiquityIdentityToken];. Für das Nutzungsbeispiel finden Sie bitte bitte @Dj s 'Antwort :).
Es ist schneller und einfacher als die ursprüngliche Lösung, die für Personen vorgesehen war, die auf iOS5 und höher abzielen

Ursprüngliche Antwort
Wie in iOS App -Programmierhandbuch - iCloud -Speicher. Das kann überprüft werden, indem Sie die URL für Ubiquity Container bei Dateimanager fragen :)

Solange Sie eine gültige Ubiquity -Container -Kennung unter der Methode liefern

- (BOOL) isICloudAvailable
{
    // Make sure a correct Ubiquity Container Identifier is passed
    NSURL *ubiquityURL = [[NSFileManager defaultManager] 
        URLForUbiquityContainerIdentifier:@"ABCDEFGHI0.com.acme.MyApp"];
    return ubiquityURL ? YES : NO;
}

Das habe ich jedoch gefunden URLForUbiquityContainerIdentifier: Könnte das erste Mal in einer Sitzung mehrere Sekunden dauern (ich habe es in iOS5 verwendet, also könnten die Dinge jetzt anders sein). Ich erinnere mich, dass ich so etwas verwendet habe:

dispatch_queue_t backgroundQueue = 
   dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(backgroundQueue,^{
   BOOL isAvailable = [self isICloudAvailable]
  /* 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];
       }
   });
});

Andere Tipps

Nur um die obige Antwort zu ergänzen, wenn Sie nur wissen möchten, ob iCloud für Ihre Bewerbung verfügbar ist, z.
1. Es wird kein iCloud -Konto eingerichtet, oder
2. Dokumente und Daten sind deaktiviert (für alle Apps) oder
3. Dokumente und Daten sind nur für Ihre App deaktiviert

Dann können Sie verwenden NSFileManager's ubiquityIdentityToken zum iOS 6 und höher.
Wenn der Wert nil ist, ist das iCloud -Konto nicht konfiguriert. Andernfalls ist das iCloud -Konto konfiguriert.

id token = [[NSFileManager defaultManager] ubiquityIdentityToken];
if (token == nil)
{
    // iCloud is not available for this app
}
else
{
    // iCloud is available
}

Beachten Sie das nach Apple Docs, Sie können es vom Haupt -Thread aus aufrufen.

Da diese Methode relativ schnell zurückgibt, können Sie sie zum Startzeit anrufen und sie vom Haupt -Thread Ihrer App aus aufrufen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top