Файловый ввод-вывод на iPad

#ios #file #io

#iOS #файл #io

Вопрос:

Эксперты.. новый вопрос

Я разработал ГИС-подобное приложение, которое отлично работает в среде Xcode и iPad simulator. Теперь я хочу протестировать на реальном iPad. Я прошел процесс предоставления сертификатов и смог запустить приложение на своем устройстве. Проблема возникает, когда программа пытается прочитать файл, который находится на моем компьютере для разработки (путь к файлу примерно такой /Users/user/Document/data.txt ).

Могу ли я скопировать это «data.txt «файл на ipad, и если я смогу, каким будет его путь для ввода-вывода?

Спасибо за вашу помощь.

KAS

Ответ №1:

Вы добавите его в свое приложение. и это будет в комплекте.

 NSData *data = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"data" ofType:@"txt"]];
  

После загрузки проанализируйте его с помощью строки.

Вы можете использовать NSScanner для анализа вашей строки

 NSString *fileName = [[NSBundle mainBundle] pathForResource:@"data" ofType:@"txt"];
NSError *error = nil;
NSString *myData = [NSString stringWithContentsOfFile:fileName encoding:NSASCIIStringEncoding   error:amp;error];
NSScanner *myScanner = [NSScanner scannerWithString:myData];
int myNewInt = 0;
if ([myScanner scanInt:amp;myNewInt])
{
    //Do Something with my New Int
}
  

Комментарии:

1. Хорошо, это работает .. однако я использую старомодный «fscanf ()» для анализа данных, что является эквивалентом здесь… Думаю, я мог бы преобразовать его в строку C, а затем использовать sscanf () или есть способ получше?

2. Предполагается, что ваш файл должен быть в определенном формате? Для чего вы это используете?

3. Джейсон .. файл содержит три поля в следующем формате 12.34444 -34.45689 Label_for_point ….. Я прочитал эти поля в x, y, label с помощью функции fscanf ()

4. Другой вариант — поместить данные в XML-файл для NSDictionary и загрузить его из пакета. Тогда у вас будут значения в словаре. Или даже просто массив.

5. ХОРОШО .. здесь вы меня потеряли 🙂 .. можете ли вы объяснить это в коде, пожалуйста

Ответ №2:

Вы можете включить файл в свой проект, а затем получить к нему доступ. Чтобы получить полный путь к файлу:

 NSString *appFolderPath = [[NSBundle mainBundle] resourcePath];
NSString *filePath = [appFolderPath stringByAppendingPathComponent:@"data.txt"];