2010-04-12 3 views
4

제 목표는 내 내부 구성 요소가 생성 한 실시간 메시지를 로깅하는 전용 GUI를 사용하는 것입니다. 로그 메시지에 특정 제한이 설정되어 이전 메시지가 제거됩니다.실시간 로그 메시지 디스플레이 용 iPhone GUI

출력을 저장하기 위해 NSMutableString과 함께 UITextView을 사용하여 구현하는 것에 대해 생각하고 있습니다. 어떻게 든 NSMutableString 개체에서 수동 잘라 내기를 수행해야합니다. 이것을 구현하는 더 좋은 방법이 있습니까?

답변

1

초기 접근법이 너무 느리거나, 너무 많은 메모리를 사용하거나, 그렇지 않으면 문제가 될 때까지 성능에 대해 크게 걱정하지 않아야합니다. 그래도 Yakub의 제안을 받아 중간 파일을 통해 작업하지 않을 것이라고 생각합니다.

UITextView 괜찮습니다. 먼저 로그 메시지를 NSMutableArray으로 수집하여 잘라 내기를 쉽게 만든 다음 줄 바꿈으로 결합 된 NSString으로 연결하고 텍스트보기에 할당하십시오.

개발 시간 디버깅 도구가 될 수있는 엔지니어링 작업의 위험이 있으므로 클래스의 로그 메시지 관리 (추가, 잘라 내기 및 생성)를 래핑하는 것이 좋습니다. 내부 코드를 사용하는 코드에 대해 생각하지 않고도 내부 동작을 변경할 수 있습니다.

@interface LogManager : NSObject 
{ 
    NSMutableArray *messages; 
} 

- (void) addMessage:(NSString *)message; 
- (NSString *) logAsString; 

@end 

구현은 간단합니다. 당신은 또한 당신의 UITextView의 인식이 클래스를 만들지 만, 당신이 경우에, 사용자 인터페이스 업데이트 (performSelectorOnMainThread:withObject:waitUntilDone:를 참조 메인 스레드에서 수행되어야한다는 것을 기억할 수

주.

1

로그를 여러 배열 레코드로 관리하는 경우 NSMutableArray를 사용하여 테이블로 구현하는 것이 좋습니다.

배열 성능은 NSMutableString을 조작하는 것보다 훨씬 낫습니다.

0

NSFileManager 클래스를 사용해야한다고 생각합니다. NSFileManager 클래스의 도움을 받아야합니다.

이 클래스를 사용하면 작업을 잘 수행 할 수 있습니다.

단계 :

이 preveous 결과 문자열의 끝에서 생성 된 새 로그를 추가하여 인 NSMutableString에 NSLog 문자열을 작성합니다.

및 일부 임시 txt 파일에 쓰기.

그 파일을 읽고 해당 파일의 내용을 UITextView에 표시하십시오.