Editar:
Si el idioma de iOS 6 o superior puede utilizar [[NSFileManager defaultManager] ubiquityIdentityToken];
. Para el ejemplo de uso, consulte @Dj S' answer :).
es más rápido y más fácil que la solución original que estaba destinado para las personas de orientación IOS5 y por encima de
respuesta original
Como se documenta en iOS App programming guide - iCloud Storage. Eso se puede comprobar preguntando a la URL contenedor de ubicuidad para el administrador de archivos :)
Mientras que proporcione un identificador de contenedor ubicuidad válida por debajo método debe devolver SÍ
- (BOOL) isICloudAvailable
{
// Make sure a correct Ubiquity Container Identifier is passed
NSURL *ubiquityURL = [[NSFileManager defaultManager]
URLForUbiquityContainerIdentifier:@"ABCDEFGHI0.com.acme.MyApp"];
return ubiquityURL ? YES : NO;
}
Sin embargo, he encontrado que URLForUbiquityContainerIdentifier:
podría tomar varios segundos la primera vez en una sesión (lo usé en iOS5, por lo que las cosas podrían ser diferentes ahora). Recuerdo el uso de algo como esto:
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];
}
});
});
excelente solución. – NSSplendid
Desafortunadamente, ese enlace al documento de Apple no funciona. Puede buscar URLForUbiquityContainerIdentifier aquí: https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSFileManager_Class/Reference/Reference.html – Oscar
Apple cambia constantemente de ubicación, se actualiza el enlace. :) – nacho4d