2010-04-12 92 views
4

我的目標是在我的GUI上有一個屏幕,專門用於記錄由我的內部組件生成的實時消息。將在日誌消息上設置一定的限制,以便修剪舊消息。用於實時日誌消息顯示的iPhone GUI

我在考慮使用UITextView來執行NSMutableString來存儲輸出。我不得不以某種方式在NSMutableString對象上執行手動修剪。是一個更好的方法來實現這個?

回答

1

直到您測量並證明您的初始方法太慢,使用太多的內存或者是其他問題時,我不會擔心大量的性能問題。不過,我不認爲我會採取雅庫布的建議,並通過中間文件工作。

UITextView聽起來不錯。我可能會首先嚐試將日誌消息收集到NSMutableArray中以使修剪變得容易,然後將這些日誌消息連接成由換行符連接的單個NSString,然後將其分配給文本視圖。

在過度設計可能是開發時調試輔助工具的風險的情況下,您可能會考慮將日誌消息的管理(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中顯示該文件的內容。