Многоязычные документы (RTF) в iOS: файлы, SQLite, Core Data? Как? - PullRequest
0 голосов
/ 05 марта 2011

Я делаю свое первое приложение для iOS и сталкиваюсь с первой (маленькой) проблемой.

Приложение будет очень классическим пользовательским интерфейсом для iOS: я имею в виду представления таблиц, панель вкладок, push-контроллеры и т. Д. С отображением документов (из уже существующих файлов RTF), аудио и видео файлов.

Мои RTF имеют смешанные языки, все поддерживаются iOS, я думаю, это важно, не так ли?

Учитывая, что аудио и видео, очевидно, будут храниться в каталоге документов песочницы, я не очень уверен в RTF.

Я хочу, чтобы он был очень реактивным на всех устройствах, поэтому моя идея состояла в том, чтобы сохранить мои RTF в объекте Core Data (используя двоичный тип) и получить его в моем приложении с помощью NSAttributedString, которая может отвечать на сообщение initWithRtf.

Полагаю, после этого мне придется загрузить его в UIWebView? Или простое отображение этой строки NSAttributedString в текстовом виде сохранит его форматирование?

Но я не знаю, как отправить свое приложение с предварительно заполненной базой данных Core Data.

Итак, вот мои вопросы:

  • Стоит ли хранить эти RTF в Core Data? Это действительно быстрее, чем простой UIWebView, где я бы загружал файл RTF непосредственно из папки документов? Может SQLite лучше для моего случая?
  • Как предварительно заполнить базу данных в моем приложении?
  • Есть какие-то особые соображения по поводу нескольких языков в моих RTF? (Латинские и нелатинские языки в одном файле для примера).

Большое спасибо! Bye.

1 Ответ

2 голосов
/ 05 марта 2011

получение его в моем приложении с помощью NSAttributedString, которая может отвечать на сообщение initWithRtf.

Это не сработает.-initWithRTF:documentAttributes: в настоящее время доступно только в OS X. Для преобразования RTF-файла в NSAttributedString на iOS в данный момент требуется ручной анализ файла (будем надеяться, что это изменится с iOS 5).

Я думаю, что после этого мне придется загрузить его в UIWebView?Или просто отображение этой строки NSAttributedString в текстовом виде сохранит его форматирование?

UIWebView не может отобразить NSAttributedString s.Ни один не может UITextView.Вы должны будете использовать функции Core Text, чтобы нарисовать текст самостоятельно.Или используйте HTML с самого начала и отобразите текст в веб-представлении.

Является ли хорошей идеей сохранить эти RTF-файлы в базовых данных?Это действительно быстрее, чем простой UIWebView, где я бы загружал файл RTF непосредственно из папки документов?Может быть, SQLite лучше для моего случая?

Что не так с простыми файлами?Это был бы мой первый вариант, потому что он кажется самым простым.Вам не нужно беспокоиться об оптимизации чего-либо, если вы не знаете, нужно ли это вообще оптимизировать.Но поскольку вы можете хранить произвольные двоичные данные с помощью Core Data или простого SQLite, это определенно возможно.

Как предварительно заполнить базу данных в моем приложении?

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

...