다음과 같은 문제가 있습니다. 클래스의 인스턴스가 전달되었고이 인스턴스의 클래스 이름을 알고 싶습니다. 이것을 얻는 방법?
답변
NSStringFromClass([instance class])
트릭을해야합니다.
답변
객체를 테스트하여 특정 클래스의 유형인지 확인하십시오.
BOOL test = [self isKindOfClass:[SomeClass class]];
답변
수업 자체에서
-(NSString *) className
{
return NSStringFromClass([self class]);
}
답변
카테고리를 추가하십시오.
NSObject+Extensions.h
- (NSString *)className;
NSObject+Extensions.m
- (NSString *)className {
return NSStringFromClass(self.class);
}
그런 다음 다음 코드를 사용하십시오.
NSString *className = [[SomeObject new] className];
또는:
NSString *className = SomeObject.new.className;
어디서나 사용하려면 YourProject.pch 파일에 범주를 추가하십시오.
답변
당신은 또한 사용할 수 있습니다 [[self class] description]
답변
OBJC :
NSStringFromClass([instance class])
빠른
인스턴스에서 :
String(describing: YourType.self)
유형에서 :
String(describing: self)
답변
Swift에서 클래스 이름을 얻는 방법을 찾고 있다면 reflect를 사용하여 객체에 대한 정보를 얻을 수 있습니다.
let tokens = split(reflect(self).summary, { $0 == "." })
if let typeName = tokens.last {
println(typeName)
}