我的目標是在我的GUI上有一個屏幕,專門用於記錄由我的內部組件生成的實時消息。將在日誌消息上設置一定的限制,以便修剪舊消息。用於實時日誌消息顯示的iPhone GUI
我在考慮使用UITextView
來執行NSMutableString
來存儲輸出。我不得不以某種方式在NSMutableString
對象上執行手動修剪。是一個更好的方法來實現這個?
我的目標是在我的GUI上有一個屏幕,專門用於記錄由我的內部組件生成的實時消息。將在日誌消息上設置一定的限制,以便修剪舊消息。用於實時日誌消息顯示的iPhone GUI
我在考慮使用UITextView
來執行NSMutableString
來存儲輸出。我不得不以某種方式在NSMutableString
對象上執行手動修剪。是一個更好的方法來實現這個?
直到您測量並證明您的初始方法太慢,使用太多的內存或者是其他問題時,我不會擔心大量的性能問題。不過,我不認爲我會採取雅庫布的建議,並通過中間文件工作。
UITextView
聽起來不錯。我可能會首先嚐試將日誌消息收集到NSMutableArray
中以使修剪變得容易,然後將這些日誌消息連接成由換行符連接的單個NSString
,然後將其分配給文本視圖。
在過度設計可能是開發時調試輔助工具的風險的情況下,您可能會考慮將日誌消息的管理(NSString
的添加,修剪和生成)封裝在一個類中。您將有更多的自由來改變內部運作,而不用考慮使用它的代碼。
@interface LogManager : NSObject
{
NSMutableArray *messages;
}
- (void) addMessage:(NSString *)message;
- (NSString *) logAsString;
@end
實施很簡單。
請注意,您也可以使這個類意識到你UITextView
的,但如果這樣做,請記住,更新用戶界面,必須在主線程中進行(見performSelectorOnMainThread:withObject:waitUntilDone:
。
如果你管理你的日誌到多個數組記錄,我建議使用NSMutableArray作爲表來實現它。
數組的性能遠遠好於操縱NSMutableString。
我想你必須使用NSFileManager類,藉助NSFileManager類。
使用這個類,你可以很好地執行你的任務。
步驟:
通過附加在preveous結果字符串的結束產生新的日誌寫的NSMutableString您NSLog的字符串。
並將其寫入一些臨時txt文件。
並讀取該文件並在UITextView中顯示該文件的內容。