Dateiüberwachung mit Grand Central Dispatch

Ich verwende das Codebeispiel vonDavid Hamrick um eine Datei mit GCD zu überwachen.

int fildes = open("/path/to/config.plist", O_RDONLY);

dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_source_t source = dispatch_source_create(DISPATCH_SOURCE_TYPE_VNODE,fildes, 
                                                  DISPATCH_VNODE_DELETE | DISPATCH_VNODE_WRITE | DISPATCH_VNODE_EXTEND | DISPATCH_VNODE_ATTRIB | DISPATCH_VNODE_LINK | DISPATCH_VNODE_RENAME | DISPATCH_VNODE_REVOKE,
                                                  queue);
dispatch_source_set_event_handler(source, ^
{
    //Reload the config file
});
dispatch_source_set_cancel_handler(source, ^
{
    //Handle the cancel
});
dispatch_resume(source);

Ich möchte verwenden, um eine Änderung einer Liste zu überwachen. Nach der ersten Änderung erhalte ich eine Benachrichtigung, jedoch nicht für die folgenden Änderungen. Warum?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage