문제

다음과 같은 문제가 있습니다. 수업의 인스턴스를 통과 하고이 인스턴스의 클래스의 이름을 알고 싶습니다. 이것을 얻는 방법?

도움이 되었습니까?

해결책

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)
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top