How do I verify a file's existence in iCloud?

前端 未结 3 1296
半阙折子戏
半阙折子戏 2021-01-16 20:13

I know that the file exists, because I can download it, but I need to check to see whether it exists. I have tried using

[NSFileManager contentsOfDirectory         


        
3条回答
  •  盖世英雄少女心
    2021-01-16 21:01

    From the docs:

    In iOS, actively download files when required. Items in iCloud but not yet local are not automatically downloaded by iOS; only their metadata is automatically downloaded. The initial download of new iCloud-based documents requires your attention and careful design in your app. After you explicitly download such an item, the system takes care of downloading changes arriving from iCloud.

    Consider keeping track of file download status as part of your iOS app’s model layer. Having this information lets you provide a better user experience: you can design your app to not surprise users with long delays when they want to open a document that is not yet local. For each file (or file package) URL provided by your app’s metadata query, get the value of the NSURLUbiquitousItemIsDownloadedKeykey by calling the NSURL method getResourceValue:forKey:error:. Reading a file that has not been downloaded can take a long time, because the coordinated read operation blocks until the file finishes downloading (or fails to download).

    For a file (or file package) that is not yet local, you can initiate download either when, or before, the user requests it. If your app’s user files are not large or great in number, one strategy to consider is to actively download all the files indicated by your metadata query. For each file (or file package) URL provided by the query, make the corresponding item local by calling the NSFileManager method startDownloadingUbiquitousItemAtURL:error:. If you pass this method a URL for an item that is already local, the method performs no work and returns YES.

    Update: iOS7 should use NSURLUbiquitousItemDownloadingStatusKey instead of NSURLUbiquitousItemIsDownloadedKey.

提交回复
热议问题