Создать папку документов iPhone SDK - PullRequest
0 голосов
/ 14 сентября 2011

Я разрабатываю приложение, которое отображает несколько страниц текста при нажатии правильных кнопок.Это статическая информация.Для каждой из шести кнопок существует отдельный текстовый файл.

Я новичок в ios SDK.Создает ли проект в XCODE автоматически папку документов?Является ли «папка документов» тем, что Apple называет «песочницей»?

Могу ли я просто написать свой текст (та часть, которая будет отображаться на экране, много текста), перетащить его в «папку документов»», а затем отобразить его в« режиме прокрутки »на iPhone при нажатии определенной кнопки?

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

Ответы [ 3 ]

0 голосов
/ 14 сентября 2011

Если вы не хотите изменять текст динамически (то есть, только когда вы отправляете обновление), просто добавьте файлы прямо в ваш проект XCode и даже не беспокойтесь о папке «песочница» / «Документы».Вы можете перетащить файлы на боковую панель в XCode (создание пользовательской папки для вас было бы очень организованно с вашей стороны) и установить флажок «Копировать файлы в папку проекта?»когда спросилиКак заявлено, они теперь скопированы и являются частью скомпилированного приложения.Затем вы можете запросить файлы и отобразить их в UITextView, автоматически поддерживая прокрутку текста.

В качестве альтернативы, вы можете сделать то, что я считаю более простым способом, и включить файлы непосредственно в код.В файле класса, который загружает текст, в файле .h (Заголовок) добавьте UITextView как свойство и переменную.В файле .m (Реализация) выполните yourTextView = [[UITextView alloc] init];, затем установите yourTextView.text на строку NSString, содержащую ваш текст.Звучит запутанно, но в конце концов это будет быстрее и проще для обновления.То есть, если ваш текст не отформатирован ... В любом случае, вы также можете просто создать UITextView в своем файле XIB / NIB и добавить свой текст напрямую.

Я бы посоветовал вам сделать это в коде.Это будет легче всего изменить.

0 голосов
/ 14 сентября 2011

Добавление текста в ваше приложение - это одно, а сделать его безопаснее - сложнее.Мне пришлось столкнуться с подобной проблемой, и я решил использовать неформатированный текст, который я включил в своем приложении в зашифрованном виде, и расшифровал только ту часть, которая отображается.Реально зависит, насколько «секретно» вы хотите сохранить текст.Помните, что любой может прочитать его и скопировать прямо с экрана со скриншотом.Кроме того, незашифрованный текст в приложениях можно легко прочитать и извлечь с помощью HexEditor!

В качестве альтернативы вы можете подготовить текст в формате * .txt (не отформатированный) или html (отформатированный так, как вам нравится) и просто включить еговаше приложение.Тем не менее, это простой способ для других просто скопировать файл.

0 голосов
/ 14 сентября 2011

Да, Кен, каталог документов существует по умолчанию при создании приложения, и, конечно, вы можете писать и читать текстовые данные из него, если хотите.

Вы не можете напрямую перенести данные в папку «Документы», однако это необходимо сделать программно.

Предположим, что один из ваших файлов 'TextFile1.txt'.Сначала вы должны добавить этот файл в свой проект, и где-нибудь в appDelegate напишите следующий код:

NSString *fileBundlePath = [[NSBundle mainBundle] pathForResource:@"TextFile1" ofType:@"txt"];

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *fileDocumentDirectorySavePath = [documentsDirectory stringByAppendingPathComponent:@"TextFile1.txt"];

NSFileManager *fm = [NSFileManager defaultManager];
if (![fm fileExistsAtPath:fileDocumentDirectorySavePath])
    [fm copyItemAtPath:fileBundlePath toPath:fileDocumentDirectorySavePath error:nil];

. Это скопирует TextFile1.txt в папку документов вашего приложения, из которой вы можете прочитать его в любое время, когда вынужно с помощью следующего кода:

// You can get the fileDocumentDirectorySavePath same way as in the above code
NSString *stringToDisplay = [[NSString alloc] initWithData:[NSData dataWithContentsOfFile:fileDocumentDirectorySavePath] encoding:NSUTF8StringEncoding];
NSLog(@"String : %@", stringToDisplay);

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

...