Я знаю, что могу получить две части информации о файле iCloud: версию и дату последнего изменения. Вопрос в том, когда я имею дело с двумя файлами iCloud с одинаковыми именами, было бы лучше использовать версию или дату последнего изменения, чтобы выяснить, какой из них более поздний?

Мне кажется, что дата последнего изменения теоретически будет более точной, но я вижу много руководств, в которых говорится, что версия должна использоваться для сравнения двух файлов, чтобы определить, какой из них новее.

Я хотел бы знать, какая практика лучше и почему.

1
Anton 14 Фев 2013 в 20:13

1 ответ

Лучший ответ

Дата последнего изменения хороша, если вы работаете на одном компьютере и системное время согласовано. Когда вы работаете с iCloud, у вас есть как минимум три системных времени, о которых нужно подумать - местное время как минимум на двух пользовательских устройствах, а также то, что сервер iCloud считает временем. Даже с NTP нет гарантии абсолютной синхронизации.

NSFileVersion существует, чтобы обойти это - вы можете запросить у него последнюю версию файла, и он должен найти нужную. У него вполне могут быть свои ошибки, влияющие на точность результата, но он, по крайней мере, предназначен для того, чтобы дать вам правильный ответ независимо от синхронизации времени.

1
Tom Harrington 14 Фев 2013 в 21:31
Черт, и здесь я подумал, что он просто будет постоянно использовать время сервера iCloud: / Я протестирую с NSFileVersion и отправлю обратно!
 – 
Anton
14 Фев 2013 в 21:46
Вопрос: как я могу использовать (если вообще) NSFileVersion при работе со сценарием, когда пользователь включает iCloud и определяет, нужно ли перезаписывать какие-либо файлы в iCloud, поскольку локальные файлы более новые (для файлов с соответствующими имена файлов)? Есть ли способ сравнить UTC-версии NSDate в качестве альтернативы в этом случае?
 – 
Anton
15 Фев 2013 в 23:33