Почему NSMetadataQueryDidUpdateNotification вызывается несколько раз подряд?
Чтобы отслеживать изменения файлов в моем контейнере iCloud, я зарегистрировался для
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(processiCloudUpdates:)
name:NSMetadataQueryDidUpdateNotification
object:nil];
В идеале, всякий раз, когда я получаю сообщение об обновлении, я хотел бы открыть каждый из моих UIDoc и проверить, были ли изменены настройки. Это было бы хорошо, еслиNSMetadataQueryDidUpdateNotification
был вызван только один раз. Однако его увольняют несколько раз (я не забылаremoveObserver
и т. д. и имеют несколько запущенных экземпляров), и, таким образом, было бы крайне непрактичным загружать все файлы каждый раз при запуске уведомления об обновлении (если у меня было 5 файлов, и это вызывалось 4 раза, я бы открыл 20 UIDocs в быстрая преемственность). Например, это происходит, если я обновляю один файл (и в моем вездесущем контейнере только один файл):
2012-07-05 10:51:39.565 Meernotes[7842:707] ... NSMetadataQuery update
2012-07-05 10:51:42.468 Meernotes[7842:707] ... NSMetadataQuery update
2012-07-05 10:51:45.216 Meernotes[7842:707] ... NSMetadataQuery update
2012-07-05 10:51:47.036 Meernotes[7842:707] ... NSMetadataQuery update
Есть ли другой способ определить, когда файл изменился? NSFileVersion тоже не сильно помог.