인스턴스에서 클래스 이름을 얻습니다
-
19-09-2019 - |
문제
다음과 같은 문제가 있습니다. 수업의 인스턴스를 통과 하고이 인스턴스의 클래스의 이름을 알고 싶습니다. 이것을 얻는 방법?
해결책
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에서 Classname을 얻는 방법을 찾고 있다면 반사를 사용하여 개체에 대한 정보를 얻을 수 있습니다.
let tokens = split(reflect(self).summary, { $0 == "." })
if let typeName = tokens.last {
println(typeName)
}
제휴하지 않습니다 StackOverflow