2013-02-26 8 views
5

In iOS6, questo metodo restituisce un id unico per ciascun account iCloud:iCloud ubiquityIdentityToken equivalente in iOS5

[[NSFileManager defaultManager] ubiquityIdentityToken] 

In iOS5, l'unico modo per controllare se iCloud è disponibile è utilizzando:

[[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil] 

Questo farà per verificare la disponibilità di iCloud in iOS5, ma come faccio a distinguere gli utenti (account iCloud) in iOS5?

Sto sincronizzando i dati principali in iCloud, ma voglio anche essere in grado di utilizzare l'app senza un account iCloud. Quindi non posso usare una cartella .nosync e quindi devo gestire da solo l'accesso ai negozi (assicurandomi che ogni account iCloud possa accedere solo ai propri file). Per fare questo, metto tutti i negozi di Core Data dallo stesso account iCloud nella sua cartella, il nome della cartella viene generato usando l'ubiquityIdentityToken, poiché questo è univoco per ogni account iCloud.

C'è un altro modo per ottenere un UUID basato sull'account iCloud? Per quanto ho indagato, non c'è nulla di unico nell'URLForUbiquityContainerIdentifier che posso usare. O c'è un altro modo in cui posso gestire l'accesso oltre all'utilizzo dell'accesso specifico alla cartella?

questione connessa: An equivalent for ubiquityIdentityToken under OSX 10.7

+0

Prendere nota: il metodo 'ubiquityIdentityToken' non indica la disponibilità del Key Value Store. Anche se l'utente disattiva "Documenti e dati" in iCloud (che renderà il metodo precedente "null"), il Key Value Store sarà comunque disponibile. – Andrew

risposta

2

No, non v'è alcuna API su iOS 5 che serve a questo scopo.

Tuttavia, l'integrazione iCloud di Core Data in genere non è del tutto affidabile su iOS 5. Se è necessario supportare iCloud tramite Core Data, puntare su iOS 6.

+0

Grazie per la risposta. È un'applicazione solo per iPad, significa che non supporteremmo iPad di prima generazione, suppongo che dovrò cercare alternative a iOS 5. – mmvie