2011-11-01 2 views
7

내 iPhone의 텍스트 파일에 내 로그를 쓰고 싶습니다. 나는 문자열을 파일에 쓰는 빠른 방법을 썼다. 지금은 문서 디렉토리에 저장합니다. 장치에서 내리면 고통을 겪을 것입니다. 그저 탐색 할 수 없기 때문입니다. 이 파일을 작성한 후에 장치에서이 파일을 빨리 가져올 수있는 더 좋은 방법이 있습니까?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

사이드 노트 - 로그 파일의 크기가 약 500KB를 초과하면 실제로 비효율적입니다. 변경 사항 작성 만 고려하십시오 (다른 API 사용) – FeifanZ

답변

10

엑스 코드에서 응용 프로그램 대상의 빌드 정보에 Application supports iTunes file sharing 추가

enter image description here

+0

우. 나는 이것을 테스트 기능으로 좋아한다. 명확한 +1 –

+0

완벽한! 이것은 내가 찾고 있던 것입니다. 나는 그의 것에 대해 알고 있었지만, 나는 이것을이 목적을 위해 사용할 수 있다는 것을 잊었다. 감사! –

0

지금까지 생성 한 로그 수를 파악하고 각 로그에 새 로그 이름을 만들어야 할 수 있습니다.

마지막으로 만든 로그 이름을 NSUserDefaults에 문자열로 저장하고 그 끝에서 번호를 가져 와서 캡처 된 int에 다음 이름을 추가 할 수 있습니다.

그래서 당신은 "LOG4"@있는 경우에 당신은 밖으로 사를 얻을 수 그래서 다음 로그가 그냥 내 2 센트

"LOG5"라는 것을 그것을 5를 만들 수 있습니다와 관련하여 P

+0

예, 앱에서 프로세스를 시작할 때마다 새 로그를 작성합니다. –

0

을 '파일 가져 오는 방법'에 대한 질문에

iExplorer 이전에는 iPhone 탐색기를 사용하여 장치를 jailbreaking하지 않고 문서 폴더를 포함하여 응용 프로그램을 볼 수 있습니다.

내 경험에 의하면 (이전 버전 임에도 불구하고) 전화에서 파일을 가져 오는 것은 약간 임시적 일 수 있습니다. 즉, 파일을 내 바탕으로 끌어오고 파일을 만들지 만 파일을 작성하지 않습니다. 데이터)를 사용하면 장치에서 파일을 가져올 수 있습니다. 바로 Devices > Your device > Apps > File Sharing에서,

enter image description here

그런 다음, 당신은 쉽게 검색, 검색 할 수 있으며, 아이튠즈에서 응용 프로그램에 의해 생성 된 모든 파일을 삭제 :