2013-02-26 24 views
5

Trong iOS6, phương pháp này trả về một id duy nhất cho mỗi tài khoản iCloud:iCloud ubiquityIdentityToken tương đương trong iOS5

[[NSFileManager defaultManager] ubiquityIdentityToken] 

Trong iOS5, cách duy nhất để kiểm tra xem iCloud có sẵn là bằng cách sử dụng:

[[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil] 

Điều này sẽ thực hiện để kiểm tra tính khả dụng của iCloud trong iOS5, nhưng làm cách nào để phân biệt người dùng (tài khoản iCloud) trong iOS5?

Tôi đang đồng bộ hóa Dữ liệu cốt lõi trong iCloud, nhưng tôi cũng muốn có thể sử dụng ứng dụng mà không cần tài khoản iCloud. Do đó tôi không thể sử dụng thư mục .nosync và vì vậy tôi cần phải tự quản lý các cửa hàng (đảm bảo rằng mỗi tài khoản iCloud chỉ có thể truy cập các tệp riêng của mình). Để làm điều này, tôi đặt tất cả các kho dữ liệu Core từ cùng một tài khoản iCloud trong thư mục riêng của nó, tên của thư mục được tạo ra bằng cách sử dụng ubiquityIdentityToken, vì đây là duy nhất cho mỗi tài khoản iCloud.

Có cách nào khác để nhận một số UUID dựa trên tài khoản iCloud không? Theo như tôi đã điều tra, không có gì độc đáo trong URLForUbiquityContainerIdentifier mà tôi có thể sử dụng. Hoặc là có một cách khác mà tôi có thể quản lý quyền truy cập bên cạnh việc sử dụng truy cập thư mục cụ thể?

câu hỏi liên quan: An equivalent for ubiquityIdentityToken under OSX 10.7

+0

Lưu ý: Phương thức 'ubiquityIdentityToken' không cho biết tính khả dụng của Cửa hàng giá trị khóa. Ngay cả khi người dùng tắt "Documents & Data" trong iCloud (sẽ làm cho phương thức trên trả về 'null'), Key Value Store vẫn sẽ có sẵn. – Andrew

Trả lời

2

Không, không có API trên iOS 5 phục vụ mục đích này.

Tuy nhiên, tích hợp iCloud của Dữ liệu chính thường không đáng tin cậy trên iOS 5. Nếu bạn phải hỗ trợ iCloud thông qua Core Data, hãy nhắm đến iOS 6.

+0

Cảm ơn câu trả lời của bạn. Đó là một ứng dụng chỉ dành cho iPad, có nghĩa là chúng tôi sẽ không hỗ trợ iPad của thế hệ thứ nhất, tôi sẽ phải tìm các giải pháp thay thế cho iOS 5. – mmvie