2009-09-03 39 views
27

Tôi cần tên của lớp học sở hữu phương pháp, là NSString. Ví dụ: Có phương thức -fooBar bên trong một SomeClass và phương thức -fooBar chạy một số mã. Mã này phải in ra những gì lớp "sở hữu" nó, tôi có nghĩa là: Lớp học mà phương pháp thuộc về. Vì vậy, tôi không thể đánh cứng tên lớp trong một NSString vì tôi cần nó cho mục đích gỡ lỗi, xác định động tên của lớp. Khó để giải thích. Bất kỳ ý tưởng?Làm thế nào để có được tên của một lớp của một phương thức như NSString?

Trả lời

9
NSLog(@"%@",[self className]); 

Cập nhật: xin lỗi, tôi không nhận ra className không tồn tại trên iPhone. Như đã nêu ở trên; sử dụng ..

NSLog(@"%@", NSStringFromClass([self class])); 

.. thay thế.

60

Trên Mac, bạn có thể sử dụng:

NSString *className = [self className]; 

hoặc

NSString *className = NSStringFromClass([self class]); 

Trên iPhone, [self className] không tồn tại, do đó bạn sẽ phải sử dụng:

NSString *className = NSStringFromClass([self class]); 
3

Thử:

[[self class] description] 
+0

Bạn sẽ nhận được nhiều hơn một chút so với bạn muốn như vậy:

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