2013-05-10 21 views
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方法。將每個文件作爲一個文檔處理感覺不錯,但非常麻煩。

回答

0

有一點我確信,使用iCloud並不簡單!

有太多的例外,我認爲他們從來沒有發生過,但他們仍然發生。 (例如:某個時候的iCloud發送到我的應用程序的NSConcreteData對象,但我的應用程序使用NSFileWrapper;有時我的文件成爲一個文件夾,有些分鐘後cameback一個文件)

有很多種方式來訪問iCloud中。這是一個簡單的方法: http://www.raywenderlich.com/12779/icloud-and-uidocument-beyond-the-basics-part-1

與iCloud的工作時,(一切都可能發生)

好運

記住總是小心
相關問題