Tôi đang sử dụng NSUbiquitousKeyValueStore
để đồng bộ hóa một số dữ liệu tùy chọn với iCloud. Tôi thấy rằng nếu người dùng vô hiệu hóa "Tài liệu & Dữ liệu" mục của iCloud trong "Cài đặt ứng dụng", NSUbiquitousKeyValueStore
không thể đồng bộ hóa dữ liệu của mình với iCloud. Vì vậy, tôi muốn kiểm tra đầu tiên nếu thiết lập này được bật on.After googling, tôi thấy Đoạn mã này:Làm thế nào để phát hiện lập trình nếu iCloud được kích hoạt trên thiết bị của người dùng khi chỉ sử dụng NSUbiquitousKeyValueStore?
NSURL *ubiq = [[NSFileManager defaultManager]
URLForUbiquityContainerIdentifier:nil];
NSLog(@"url=%@",ubiq);
if (!ubiq) {
UIAlertView *av = [[UIAlertView alloc] initWithTitle:nil message:@"Please enable iCloud in Setting app" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[av show];
return;
}
Những gì tôi muốn biết là cho dù đây là cách duy nhất để phát hiện, ngay cả khi tôi chỉ cần sử dụng NSUbiquitousKeyValueStore
(không phải lưu trữ tài liệu iCloud). Có một lựa chọn tốt hơn?
Câu trả lời của bạn có vẻ mâu thuẫn với tài liệu, nói: “Tránh sử dụng lớp này cho dữ liệu cần thiết cho hành vi của ứng dụng khi ngoại tuyến […]”. Tôi đã đăng một [câu hỏi] (http://stackoverflow.com/q/23662856/251760) về điều đó. Bạn có thể trả lời điều đó không? – Jonathan
Điều này có nghĩa là bạn không nên dựa vào cửa hàng này để trở thành sự thật địa phương của bạn mà còn là một kênh giao tiếp đồng bộ đơn giản giữa các thiết bị của bạn. – Julien
Cảm ơn! Tôi đã trả lời của bạn thành một câu trả lời (http://stackoverflow.com/a/26556553/251760) cho câu hỏi của tôi, tôi hy vọng bạn sẽ ổn với điều đó. (Nếu bạn muốn tự mình trả lời, tôi vui vẻ xóa tên của tôi.) – Jonathan