2011-11-01 4 views
7

Chcę napisać własne dzienniki do pliku tekstowego na moim iPhonie. Napisałem szybką metodę, która zapisuje ciąg do pliku. W tej chwili zapisuje go w katalogu dokumentów, który, jeśli na urządzeniu będzie trudny do zejścia, ponieważ nie mogę po prostu go przeglądać. Czy istnieje lepszy sposób na szybkie usunięcie tego pliku z urządzenia po napisaniu do niego?Objective-C: Utwórz plik tekstowy na urządzeniu i łatwo odzyskaj plik

/** 
* 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 - jeśli plik dziennika osiągnie rozmiar większy niż około 500 KB, stanie się to naprawdę nieefektywne. Zastanów się tylko nad zmianami (używając innego API) – FeifanZ

Odpowiedz

10

Dodaj Application supports iTunes file sharing do celu aplikacji informacją budować w Xcode:

enter image description here

Następnie można łatwo przeglądać, pobierać i usuwać pliki utworzone przez aplikację z iTunes, tuż pod Devices > Your device > Apps > File Sharing:

enter image description here

+0

Oooh. Podoba mi się to jako funkcja testowania. Zdecydowanie +1 –

+0

Perfect! Tego właśnie szukałem. Wiedziałem o nim, ale zapomniałem, że mogę go użyć do tego celu. Dzięki! –

0

Być może trzeba będzie przechwytywać co liczba dzienników zostały utworzone do tej pory i utworzyć nową nazwę dla każdego dziennika odchylone na ten temat.

Możesz więc zapisać swoją ostatnio utworzoną nazwę logu jako ciąg w NSUserDefaults i pobrać numer z końca tego i dodać jeden do przechwyconego int gotowy na następne imię.

Więc jeśli masz @ „Log4” można dostać 4 z że i sprawiają, że 5 tak, że obok dziennika o nazwie „Log5”

Tylko moje 2 centy: P

+0

Tak, będę tworzyć nowy log za każdym razem, gdy rozpoczynam proces w mojej aplikacji. –

0

Odnośnie w części "Jak zdobyć plik" część pytania, wcześniej Eksplorator iPhone'a pozwala przeglądać aplikacje, w tym folder dokumentów, bez ingerowania w jail urządzenia.

Z mojego doświadczenia (choć w starszej wersji), pobieranie plików z telefonu może być trochę czasowe (tj. Przeciągam plik na mój pulpit i chociaż tworzy on plik, nie zapisuje żadnego z plików danych), możesz pobrać pliki z urządzenia.