Цель-C: Создать текстовый файл на устройстве и легко получить файл - PullRequest
7 голосов
/ 01 ноября 2011

Я хочу записать свои собственные журналы в текстовый файл на моем iPhone. Я написал быстрый метод, который записывает строку в файл. Прямо сейчас он сохраняет его в каталоге «Документы», что, если на устройстве будет сложно выйти, так как я не могу просто просмотреть его. Есть ли лучший способ быстро получить этот файл с устройства после того, как я на него записал?

/**
 * Logs a string to file
 *
 * @version $Revision: 0.1
 */
+ (void)logWithString:(NSString *)string {

    // Create the file
    NSError *error;

    // Directory
    NSString *documentsDirectory = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];
    NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"log.txt"];

    // Get the file contents
    NSData *localData = [NSData dataWithContentsOfFile:filePath];
    if (localData) {
        NSString *logString = [[NSString alloc] initWithData:localData encoding:NSUTF8StringEncoding];
        string = [logString stringByAppendingFormat:@"%@\n", string];
        [logString release];
    }

    // Write to the file
    [string writeToFile:filePath atomically:YES encoding:NSUTF8StringEncoding error:&error];

}//end

Ответы [ 3 ]

10 голосов
/ 01 ноября 2011

Добавьте Application supports iTunes file sharing к информации о сборке цели вашего приложения в Xcode:

enter image description here

Затем вы можете легко просматривать, извлекать и удалять любые файлы, созданные приложением, из iTunes прямо под Devices > Your device > Apps > File Sharing:

enter image description here

0 голосов
/ 01 ноября 2011

Что касается части вопроса «Как получить файл»

iExplorer , ранее iPhone Explorer позволял вам просматривать ваши приложения, включая папку с документами, без джейлбрейка ваших устройств.

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

0 голосов
/ 01 ноября 2011

Возможно, вам придется зафиксировать, какое количество журналов вы создали на данный момент, и создать новое имя для каждого журнала, смещенного на него.

Таким образом, вы можете сохранить имя последнего созданного журнала в виде строки в NSUserDefaults иполучите число с конца этого и добавьте его в захваченное целое, готовое к следующему имени.

Так что, если у вас есть @ "Log4", вы можете получить 4 из этого и сделать его 5 таким образом, чтобыследующий журнал называется "Log5"

Просто мои 2 цента: P

...