Чтобы отслеживать изменения файлов в моем контейнере iCloud, я зарегистрировался на
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(processiCloudUpdates:)
name:NSMetadataQueryDidUpdateNotification
object:nil];
В идеале, всякий раз, когда я получаю сообщение о том, что были сделаны обновления, я хотел бы открыть каждый из своих UIDocs и проверить, были ли изменены настройки. Это было бы хорошо, если бы 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 тоже не сильно помог.