Edit:
Jeśli kierowania iOS6 lub powyżej można użyć [[NSFileManager defaultManager] ubiquityIdentityToken];
. Aby zapoznać się z przykładem użycia, zapoznaj się z @Dj S' answer :).
Jest szybszy i łatwiejszy niż oryginalne rozwiązanie, które było przeznaczone dla osób kierowanych iOS5 a przede
Original Odpowiedź
Jak udokumentowano w iOS App programming guide - iCloud Storage. Że można sprawdzić prosząc URL pojemnik wszechobecność do menedżera plików :)
Dopóki podać poprawny identyfikator pojemnik wszechobecność poniżej metody powinny powrócić YES
- (BOOL) isICloudAvailable
{
// Make sure a correct Ubiquity Container Identifier is passed
NSURL *ubiquityURL = [[NSFileManager defaultManager]
URLForUbiquityContainerIdentifier:@"ABCDEFGHI0.com.acme.MyApp"];
return ubiquityURL ? YES : NO;
}
jednak odkryłem, że URLForUbiquityContainerIdentifier:
może zająć kilka sekund po raz pierwszy w sesji (użyłem go w systemie iOS5, więc teraz może być inaczej). Pamiętam za pomocą czegoś takiego:
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];
}
});
});
doskonałe rozwiązanie. – NSSplendid
Niestety ten link do dokumentu Apple nie działa. Możesz wyszukać URLForUbiquityContainerIdentifier tutaj: https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSFileManager_Class/Reference/Reference.html – Oscar
Apple stale zmienia lokalizacje, link jest aktualizowany. :) – nacho4d