2011-11-01 3 views
7

Я хочу написать свои собственные журналы в текстовый файл на моем iPhone. Я написал быстрый метод, который записывает строку в файл. Сейчас он сохраняет его в каталоге Documents, который, если на устройстве будет боль, чтобы выйти, поскольку я не могу просто перейти к нему. Есть ли лучший способ быстро получить этот файл с устройства после того, как я написал ему?Objective-C: Создать текстовый файл на устройстве и легко получить файл

/** 
* 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 
+0

Sidenote - если файл журнала будет больше, чем около 500 КБ или около того, это станет действительно неэффективным. Рассмотрите возможность записи изменений (используя другой API) – FeifanZ

ответ

10

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

enter image description here

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

enter image description here

+0

Oooh. Мне нравится это как функция тестирования. Определенно +1 –

+0

Отлично! Это именно то, что я искал. Я знал о нем, но забыл, что могу использовать его для этой цели. Благодаря! –

0

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

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

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

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

+0

Да, я буду создавать новый журнал каждый раз, когда я начну процесс в своем приложении. –

0

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

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

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