iphone writeToFile: проблема - PullRequest
1 голос
/ 23 июня 2011

Есть ли способ сохранить мой XML-файл в другом каталоге, кроме "/ Users / student / Library / Поддержка приложений / iPhone / Simulator / User / Applications /..."

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *appFile = [documentsDirectory stringByAppendingPathComponent:@"accUserNames.xml"];
 BOOL ok = [content writeToFile:appFile atomically:YES encoding:NSUnicodeStringEncoding error:nil];
if (!ok) {
    NSLog(@"Error writing file !");
}

Я хочу написать ToFile: мой файл .xml на рабочий стол, есть идеи о том, как?

Ответы [ 4 ]

2 голосов
/ 23 июня 2011

Может помочь приведенный ниже код,

NSString *documentsDirectory = @"/Users/student/Desktop/";
NSString *appFile = [documentsDirectory stringByAppendingPathComponent:@"accUserNames.xml"];
BOOL ok = [content writeToFile:appFile atomically:YES encoding:NSUnicodeStringEncoding error:nil];
if (!ok) {
    NSLog(@"Error writing file !");
}
1 голос
/ 23 июня 2011

В iPhone Simulator вы сможете успешно использовать @"/Users/student/Desktop/accUserNames.xml" в качестве пути для записи.Тем не менее, вы не можете сделать это на устройстве iOS (вы будете ограничены каталогом песочницы приложения - рекомендуется записывать в папку «Документы» или другие папки, в зависимости от того, какой тип данных вы храните).1002 *


Редактировать: Я думаю, я понимаю вашу проблему.Эта часть вашего кода:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];

эффективно находит путь к «/ Users / Student / Library / Application Support / iPhone / Simulator / User / Applications / ...» (это обычное местохочу сохранить вещи).Но если вы просто хотите временно сохранить на рабочем столе, вы должны просто использовать appFile = @"/Users/student/Desktop/accUserNames.xml".

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

0 голосов
/ 23 июня 2011

Если вы хотите загрузить свой файл на сервер (в нашем примере это «www.blahblah.com»), то использование методов записи в файл не является правильным подходом. Это только для записи данных в локальную файловую систему (или в общий сетевой ресурс, но это не относится к iPhone).

Если вы хотите перенести данные на веб-сервер, вам понадобится что-то на сервере, которое будет прослушивать запрос на соединение, тогда ему нужно будет принять данные, которые передаются из вашего приложения. Вы не можете просто записать файл на «www.blahblah.com» так же, как в файловую систему

0 голосов
/ 23 июня 2011

Вероятно, не с кодом, но вы можете попробовать это: Откройте «Automator» (в папке «Утилиты») и выберите «Действие папки».В качестве входной папки вы указываете каталог документов (/ Users / student / Library / Application Support / iPhone / Simulator / User / Applications / ...), а затем выбираете из «Файлы и папки» «Duplicate Finder Items»."и" Переместить элементы Finder "и выберите рабочий стол.Нажмите «Сохранить», дайте ему имя, и все файлы в папке с документами должны быть скопированы на рабочий стол.

Automator http://i52.tinypic.com/a431u1.png

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...