Вы также должны взглянуть на NSCoding
и NSKeyedArchiver
, которые почти точно такие же, как XML Plist, только это двоичный формат (гораздо более компактный), он быстрее и поддерживает указатели (так что если один и тот же объект находится в нескольких местах, когда вы пишете файл, он все равно будет тем же объектом, когда вы читаете его).
Создание файла NSCoding
из базы данных MySQL может быть сложной задачей (я никогда не пробовал), но вы всегда можете сгенерировать plist, а затем сразу же преобразовать его в двоичный формат, как только он появится на устройстве.
Мое эмпирическое правило: если он умещается в ОЗУ, следует использовать NSCoding
, если он не умещается в ОЗУ, следует использовать SQLite или Core Data.
Я бы всегда избегал XML на устройстве iOS, дисковое пространство очень дорого. Очевидно, что иногда вам нужен XML, особенно если вы собираетесь разрешить пользователям импортировать / экспортировать файлы в ваше приложение и из него, и они ожидают чего-то на основе XML.