2
人們可以通過只是在普及容器創建文件這樣的文件同步到iCloud:使用NSFileManager API處理iCloud中的文件是否安全?
NSFileManager *fileManager = [NSFileManager defaultManager];
NSURL *containerURL = [fileManager URLForUbiquityContainerIdentifier:nil];
NSURL *dirURL = [containerURL URLByAppendingPathComponent:@"files" isDirectory:YES];
NSError *error;
[fileManager createDirectoryAtURL:dirURL withIntermediateDirectories:NO attributes:nil error:&error];
NSURL *icloudURL = [dirURL URLByAppendingPathComponent:@"somefile.txt"];
[fileManager createFileAtPath:[icloudURL path] contents:someData attributes:nil];
這工作,似乎是把文件到iCloud的一個簡單而直接的方式,但我找不到這樣的文檔中的示例或提示允許使用此API。產生問題: 這是安全嗎?這是否允許Apple API文檔在某處?它是否有任何已知的問題?
備註:
- 我正在尋找最簡單的方式來管理iCloud中一堆不相關的文件。
- 給定的方法更簡單的setUbiquitous:itemAtURL:destinationURL:錯誤: - 方法,因爲它允許持久化NSData的臨時文件,而無需在應用程序沙箱中創建臨時文件,並覆蓋現有文件,無需額外檢查該情況。
- setUbiquitos-API文檔中提到「您的應用程序必須有一個活動的文件展示器對象,用於在調用此方法之前監視指定的文件或目錄。」而iCloud設計指南則說「始終使用文件協調器來訪問iCloud文件或文件包」。這讓我擔心,如果給定的代碼是有問題的。
- 我看到需要FileCoordinator/FilePresenter時,許多文件的一致性f.e.在一個包目錄中需要被維護。但是,如果你只想管理雲中的一堆獨立文件,這看起來太多了。特別是考慮到這個API的性質。
- 我考慮過使用UIDocument:將文件夾作爲文檔處理並不適合給予類的load/store-everything-at-once方法。將每個文件作爲一個文檔處理感覺不錯,但非常麻煩。