Лучше всего просто сохранить XML в виде текста. Это так же просто, как File.WriteAllText (...) - для этого нет причин идти в NSFile. Это часть преимущества MonoTouch:)
Что касается синхронизации, вот правило:
- Если вы сохраните файл в папке с документами пользователя (Environment.SpecialFolder.MyDocuments и Environment.SpecialFolder.Personal ОБА указывают на папку с документами пользователя), резервная копия будет создаваться при каждой синхронизации пользователя с iTunes. *
В этом нет ничего плохого. Он сохраняет данные между сеансами и делает их восстанавливаемыми, если с телефоном пользователя что-то пойдет не так, и его нужно восстановить из резервной копии. Поскольку ваш вопрос о сохранении файла XML на телефоне, это то, что вам нужно.
Что касается вопроса iTunes, то здесь нет проблем со скоростью и синхронизацией, потому что ваше приложение не будет работать во время синхронизации телефона. Файл будет либо сохранен, либо нет. Любое повреждение происходит , когда ваше приложение работает .
Причины повреждения файлов могут включать:
iTunes определенно не повреждает ваш файл. Если бы это было так, все приложения для iOS были бы сломаны. Это может происходить на вашем компьютере разработчика по любой причине, но я никогда не видел, чтобы это случилось где-то еще, и я немного занимался разработкой для iOS.
Если вы хотите обучить чтению и записи файлов, я отправил ответ на другой вопрос .
Это долго, но смысл состоял в том, чтобы ответить на столько вопросов, сколько я мог, чтобы никого не оставили в покое или растерянности.
Приятной особенностью iOS-устройств является то, что вы вернулись (для большинства приложений) в мир «один человек за один раз». Вы пишете приложения, в которых вам не нужно беспокоиться о 5000 человек, пытающихся одновременно использовать ваше веб-приложение (это не всегда так, но ... вы понимаете). В результате вы можете делать вещи, которые вы обычно считаете плохими для производительности, но вряд ли вы увидите какие-либо проблемы с производительностью (если файл, который вы сохраняете, либо достаточно мал, чтобы его можно было быстро сохранить, либо вы сохраняете в фоновом режиме в другом потоке - вы никогда не захотите блокировать основной поток (UI) с помощью тяжелой операции ввода-вывода).
Если у вас есть еще вопросы, не стесняйтесь спрашивать.
Надеюсь, это поможет:)