Edit:
Se si prendono di mira iOS6 o superiore è possibile utilizzare [[NSFileManager defaultManager] ubiquityIdentityToken];
. Per esempi di utilizzo, fare riferimento a @Dj S' answer :).
è più veloce e più facile che la soluzione originale che è stato pensato per le persone destinate iOS5 e soprattutto
risposta originale
Come documentato in iOS App programming guide - iCloud Storage. Che possono essere controllati chiedendo l'URL del contenitore ubiquità per il file manager :)
Finché si fornisce un identificatore contenitore di ubiquità valida sotto metodo deve restituire SI
- (BOOL) isICloudAvailable
{
// Make sure a correct Ubiquity Container Identifier is passed
NSURL *ubiquityURL = [[NSFileManager defaultManager]
URLForUbiquityContainerIdentifier:@"ABCDEFGHI0.com.acme.MyApp"];
return ubiquityURL ? YES : NO;
}
Tuttavia, ho trovato che URLForUbiquityContainerIdentifier:
potrebbe richiedere diversi secondi la prima volta in una sessione (l'ho usato in iOS5, quindi le cose potrebbero essere diverse ora). Mi ricordo di usare qualcosa di simile a questo:
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];
}
});
});
soluzione eccellente. – NSSplendid
Sfortunatamente quel collegamento al documento Apple non funziona. È possibile cercare URLForUbiquityContainerIdentifier qui però: https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSFileManager_Class/Reference/Reference.html – Oscar
Apple cambia costantemente posizioni, il collegamento viene aggiornato. :) – nacho4d