클래스 객체 자체에서 클래스의 문자열 이름을 가져 오려고합니다.
// For instance
[NSArray className]; // @"NSArray"
나는 그것을 찾았 object_getClassName(id obj)
지만 인스턴스가 전달되어야하며 내 경우에는 불필요한 작업입니다.
그렇다면 인스턴스가 아닌 클래스 객체에서 문자열을 어떻게 얻을 수 있습니까?
답변
NSString *name = NSStringFromClass ([NSArray class]);
다른 방법으로 되돌아 갈 수도 있습니다.
Class arrayClass = NSClassFromString (name);
id anInstance = [[arrayClass alloc] init];
답변
타이핑을 약간 줄이면 다른 방법이 있습니다.
NSString *name = [NSArray description];
답변
이 대안을 고려하십시오.
const char *name = class_getName(cls);
NSString 객체를 할당하고 ASCII를 NSString
표현으로 변환 할 필요가 없으므로 훨씬 빠릅니다 . 그것이 NSStringFromClass()
구현되는 방법 입니다.