17.4. Searching for Files and Folders in iCloud
Problem
You want to search for files and/or folders inside the current iCloud user’s cloud space allocated for your app.
Solution
Use the NSMetadataQuery
class.
Discussion
OS X Developers are probably familiar with the NSMetadataQuery
class. This class allows
developers to query Spotlight items, whether they are files or
folders. In iOS, we will use this class to search for files and
folders in the iCloud space assigned to the app for the current user,
if she has set up iCloud for the iOS device on which the app is
running.
To set up a metadata query, there are three very important things that we need to do:
We need to set the predicate of the metadata query. The predicate is the search criteria of the query. This predicate will tell the query what items we are searching for.
We also need to set the query’s search scope. In order to search in the user’s iCloud Documents folder, we set this scope to
NSMetadataQueryUbiquitousDocumentsScope
. Otherwise, you can use theNSMetadataQueryUbiquitousDataScope
, which represents the Data folder in iCloud, a folder your app can use to store data related to the user-created documents. Remember that the files you store in the user’s iCloud should not be your app’s temporary files or any other files that your app can retrieve in some other way if those files weren’t present in the user’s iCloud storage. Things that you store in the user’s iCloud storage should be his or her creations.After we start the query, ...
Get iOS 5 Programming Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.