2009-04-21 30 views
6

Đối với mục đích gỡ lỗi, tôi muốn hiển thị nhiều thông tin về lớp nhất có thể và có thể là thông tin thời gian chạy (chuỗi nào chạy lớp, chức năng trong v.v.) vào bảng điều khiển.Cách nhận thông tin về lớp và thời gian chạy?

Có cách nào dễ dàng để thực hiện việc này với khung chức năng, biến hoặc thậm chí (bên ngoài) không?

P.S: Tôi đang sử dụng Cocoa Touch.

+0

câu hỏi tuyệt vời, cảm ơn! –

Trả lời

8

trong một lớp học, nếu bạn quá tải phương pháp -(NSString *)description, bạn có thể dễ dàng đăng nhập thông tin lớp học với NSLog(@"%@", some_object);

đây là một ví dụ hư cấu:

-(NSString *)description 
{ 
    return [NSString stringWithFormat:@"%@, %@, %d", 
             [super description], 
             class.object_ivar, 
             class.int_ivar]; 
} 

Bạn có thể sử dụng các macro C tiêu chuẩn để có được những thứ như tên , tệp, số dòng, v.v ... sử dụng các lớp NSThread để nhận thông tin về phương thức đang được gọi.

Tôi đã đăng bài đăng này lên Twitter. http://twitter.com/kailoa/status/1349928820 Hãy thoải mái theo tôi nếu bạn quan tâm đến nhiều mẩu tin như thế này. Tôi cố gắng đưa chúng lên thường xuyên.

#define METHOD_LOG (NSLog(@"%@ %s\n%@", NSStringFromSelector(_cmd), __FILE__, self)) 
+0

cảm ơn bạn, điều này làm việc cho tôi. – Jake

+4

'__PRETTY_FUNCTION__' sẽ cung cấp cho bạn lớp và bất kỳ danh mục nào cũng như tên bộ chọn. Nó cũng làm việc với C++ và Obj-C++. Nếu bạn đang lập kế hoạch sử dụng trình gỡ lỗi, đối tượng in theo mặc định sẽ gọi '-debugDescription', vì vậy bạn có thể ghi đè lên để cung cấp mô tả gỡ lỗi phù hợp hơn so với' -description'. –

+0

Tuyệt vời, cảm ơn bạn –

Các vấn đề liên quan