Nếu tôi có lớp con UIViewController
, làm cách nào để có được tên lớp là chuỗi? Tôi đã thử làm [vc class]
, nhưng điều này trả về một đối tượng Class
, không phải là NSString
.Nhận tên lớp của bộ điều khiển chế độ xem dưới dạng chuỗi
Trả lời
NSStringFromClass
Trả về tên của một lớp như là một chuỗi.
NSString * NSStringFromClass ( Class aClass );
Nếu kết thúc ở đây từ google và thực sự muốn câu trả lời SWIFT 3, hãy sử dụng ví dụ: 'Chuỗi (mô tả: MyViewController.self)': https://stackoverflow.com/a/34878224/1736679 – Efren
Sử dụng chức năng:
const char * class_getName(Class cls)
như
class_getName ([vc class]);
làm cách nào để tôi chuyển từ char * sang NSString? – xonegirlz
Xem câu trả lời của @ JoshCaswell. – GoZoner
bạn không truyền từ char * sang NSString. Bạn phải tạo một chuỗi từ byte bằng cách sử dụng một cuộc gọi như initWithBytes: length: encoding :. Bạn có thể sử dụng mã hóa NSASCIIStringEncoding. Xem thông báo của người đăng khác về NSStringFromClass. Đó là dễ dàng hơn nhiều để sử dụng hơn so với chức năng thời gian chạy Objective C class_getName(). –
bạn có thể làm một số điều như sau khi bạn khởi tạo đối tượng của bạn:
[[NSClassFromString(@"className1") alloc] init];
Bạn có thể làm một cái gì đó giống như
NSString *strClass = NSStringFromClass([viewController class]);
trùng lặp càng tốt này của [Làm thế nào để in loại hoặc lớp của một biến trong Swift?] (http://stackoverflow.com/questions/24006165/how-do-i-print-the-type-or-class-of-a-variable-in-swift) – Dschee