File monitoring on iOS is achieved by creating what GCD calls a "dispatch source" for whatever file or folder you want to monitor. When creating a dispatch source, you provide three interesting things:
- A file descriptor that points to the file or folder
- Flags to describe what kind of events you want to be notified about (file was modified, file was written to, etc.)
- The queue on which to send these event notifications (the main queue, a background queue, etc.)
After creating a dispatch source, you then set blocks of code to be executed when an event occurs or when the source is canceled (destroyed). In the block you set for when an event occurs, you can determine which event occurred (if you registered for more than one type), and proceed accordingly with if...else...then or switch...case statements.
I'm in the process of creating a portable Objective-C class that will simplify the process, but in the mean time, you should take a look at a demo project I've put on GitHub. It shows how exactly to do what I've described.
EDIT:
iMonitorMyFiles is now available through CocoaPods. To install it, simply add the following line to your Podfile:
pod 'iMonitorMyFiles', '~> 0.1.0'