Không có thực sự là một con đường xung quanh sử dụng UIDocument. Tôi đã cố gắng làm điều đó trong một trong những lần sử dụng iCloud đầu tiên của mình, nhưng hóa ra lại là một thảm họa mà không có UIDocument. Sử dụng UIDocument lúc đầu có vẻ như rất nhiều công việc phụ, nhưng nó không phải là.
Bạn có thể dễ dàng phân lớp UIDocument trong chưa đầy một giờ và làm cho nó hoạt động với bất kỳ loại tệp nào (chỉ cần đặt thuộc tính content
là NSData). Nó cũng cung cấp nhiều lợi ích hơn các hệ thống tập tin tiêu chuẩn:
- Thay đổi theo dõi
- file giải quyết xung đột
- Tài liệu hỗ trợ nhà nước
- Tăng cường tiết kiệm/mở/tính năng gần
Thành thực mà nói, chi tiêu chỉ một hoặc hai giờ đọc trên tài liệu của Apple và sau đó sử dụng nó cũng có giá trị thời gian và sức mạnh bộ não. Bạn có thể tìm thấy bài viết khởi đầu tốt về bộ nhớ Tài liệu iCloud trong Apple's Developer Documentation.
Tôi đã viết một lớp con UIDocument sẽ hoạt động với bất kỳ loại tệp nào (đặc biệt là NSData). Bạn có thể xem, tải xuống và sửa đổi mã cho lớp con UIDocument trên GitHub.
Tạo tài liệu:
// Initialize a document with a valid file path
iCloudDocument *document = [[iCloudDocument alloc] initWithFileURL:fileURL];
// Set the content of the document
document.contents = content;
// Increment the change count
[document updateChangeCount:UIDocumentChangeDone];
Lưu một tài liệu hiện có:
// Save and close the document
[document closeWithCompletionHandler:nil];
Lưu một tài liệu mới:
[document saveToURL:document.fileURL forSaveOperation:UIDocumentSaveForCreating completionHandler:nil];
Bạn cũng có thể đồng bộ tất cả các file được lưu trữ trong iCloud bằng cách sử dụng NSMetadataQuery. Apple cung cấp một ví dụ rất hay về việc sử dụng truy vấn NSMetadata để đồng bộ hóa các tệp ứng dụng. Ngoài ra hãy đảm bảo kiểm tra iCloud trước khi thực hiện các thao tác này (gợi ý: sử dụng phương thức ubiquityIdentityToken
trên NSFileManager).
Bạn cũng có thể xem xét sử dụng thư viện nguồn mở như iCloud Document Sync. Dự án iCloud Document Sync giúp bạn lưu trữ và đồng bộ hóa các tệp ứng dụng dễ dàng:
Tích hợp iCloud vào các dự án tài liệu iOS với các phương thức mã một dòng. Đồng bộ hóa, tải lên, quản lý và xóa tài liệu khỏi iCloud một cách nhanh chóng và dễ dàng. Giúp để làm cho iCloud "chỉ làm việc" cho các nhà phát triển quá.
Trong hầu hết mọi phương thức Đồng bộ hóa tài liệu iCloud, tất cả những gì bạn phải làm là chuyển dữ liệu tệp dưới dạng tham số và sau đó xử lý phần còn lại (lưu, đồng bộ hóa, v.v.).
KHUYẾN CÁO: Tôi là nhà phát triển đóng góp cho dự án nguồn mở, Đồng bộ hóa tài liệu iCloud. Tuy nhiên, tôi tin rằng dự án này sẽ có lợi cho bạn, và có liên quan đến câu hỏi này. Đây không phải là quảng cáo hoặc quảng cáo.
Tôi đồng ý, nếu bạn nói không có cách nào, tôi sẽ đọc hướng dẫn. Nhưng tôi nghĩ nên có một cách dễ dàng hơn để làm điều đó, như khi bạn viết hoặc đọc một tệp trong hộp cát ứng dụng. Cảm ơn – edo42
Cảm ơn bạn đã liên kết. – Shajo