Мероприятия
Следующая команда, запускаемая во время работы с iCloud с приложениями (такими как Smultron 4 и TextEdit), которые поддерживают мобильные документы, -
sudo opensnoop -n ubd
- показывает локальные файлы, открытые демоном ubiquity. Файлы включают базы данных, одна база данных на одноранговый узел. Один каталог на одноранговый узел по следующему пути:
~/Library/Application Support/Ubiquity
Типы данных
Если вы хотите измерить прогресс, решите, какие типы измерить:
- Основные данные
- документы
- ключ-значение.
Сохранения, прогресс и измерения
Основные данные
… Файлы журнала изменений, а не файл хранилища, загружаются в iCloud и загружаются на каждое из других устройств пользователя. Когда журнал изменений поступает с другого устройства, подключенного к той же учетной записи iCloud, Core Data обновляет локальную копию вашего приложения базы данных SQLite на основе полученного журнала изменений. iCloud и Core Data гарантируют, что каждая локальная база данных обновляется с одинаковым набором изменений. ...
Подумайте: без интерпретации содержимого журнала изменений, будет ли целесообразно измерить ход загрузки файла журнала?
документы
В библиотеке разработчика Mac:
… Приложения на основе документов могут использовать автосохранение на месте, а его документы автоматически сохраняются в подходящее время…
Также:
Стратегии автоматического сохранения данных помогают пользователю
… Соответствующие точки в вашем коде, где любые изменения, связанные с пользователем, должны быть сохранены и автоматически записать эти изменения на диск. ...
Некоторые подходящие моменты времени, когда вы можете автоматически сохранять пользовательские данные, включают следующее:
- Когда пользователь закрывает окно приложения или выходит из приложения (applicationWillTerminate :)
- Когда приложение деактивировано (applicationWillResignActive :)
- Когда пользователь скрывает ваше приложение (applicationWillHide :)
- Всякий раз, когда пользователь вносит действительные изменения в данные в вашем приложении
Последний пункт означает, что у вас есть свобода сохранять данные пользователя в любое время, когда это имеет смысл. Например, если пользователь редактирует поля записи данных, вы можете сохранить каждое значение поля по мере его изменения или подождать и сохранить все поля, когда пользователь отобразит новую запись. Внесение этих типов постепенных изменений гарантирует, что данные всегда обновляются, но также требуется более детальное управление вашей моделью данных. ...
Подумайте: такие сохранения могут быть настолько частыми, а суммы настолько малыми, что измерение не будет иметь смысла.
пункт-info.db
Я поиграл с SQLite Database Browser, чтобы просмотреть item-info.db
базу данных для пира, который, кажется, мой локальный Mac. Как я и подозревал, приложение могло просматривать только тогда, когда система не использовала базу данных - в течение двух секунд после использования Preview для редактирования Untitled.png
в iCloud я больше не мог просматривать базу данных ... и так далее.
Ссылки
Руководство по дизайну iCloud
Руководство по программированию приложений для Mac : основной дизайн приложения: