W iOS6 ta metoda zwraca identyfikator unikalny dla każdego konta iCloud:
[[NSFileManager defaultManager] ubiquityIdentityToken]
W iOS5 jedynym sposobem sprawdzenia, czy iCloud jest dostępny, jest:
[[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil]
To zrobi w celu sprawdzenia dostępności iCloud w iOS5, ale jak odróżnić użytkowników (konta iCloud) w iOS5?
Synchronizuję podstawowe dane w iCloud, ale takżechcesz móc korzystać z aplikacji bez konta iCloud. Dlatego nie mogę korzystać z folderu .nosync, dlatego muszę samodzielnie zarządzać dostępem do sklepów (upewniając się, że każde konto iCloud ma dostęp tylko do własnych plików). Aby to zrobić, umieszczam wszystkie magazyny danych podstawowych z tego samego konta iCloud w osobnym folderze, nazwa folderu jest generowana przy użyciu ubiquityIdentityToken, ponieważ jest to unikatowe dla każdego konta iCloud.
Czy istnieje jakiś inny sposób uzyskania identyfikatora UUIDw oparciu o konto iCloud? O ile badałem, nie ma nic unikalnego w URLForUbiquityContainerIdentifier, którego mógłbym użyć. Czy jest inny sposób zarządzania dostępem oprócz korzystania z dostępu do określonego folderu?
Powiązane pytanie: Odpowiednik tokenu ubiquityIdentityToken w OSX 10.7
Odpowiedzi:
2 dla odpowiedzi № 1Nie, nie ma interfejsu API w iOS 5, który służy temu celowi.
Jednak integracja iCloud Core Data na ogół nie jest wcale taka niezawodna w iOS 5. Jeśli musisz obsługiwać iCloud przez Core Data, celuj w iOS 6.