programing

인스턴스에서 클래스 이름 가져오기

instargram 2023. 4. 12. 21:44
반응형

인스턴스에서 클래스 이름 가져오기

다음과 같은 문제가 있습니다.클래스의 인스턴스를 전달받았는데 이 인스턴스의 클래스 이름을 알고 싶습니다.이거 어떻게 구하지?

NSStringFromClass([instance class])효과가 있을 거야

오브젝트가 특정 클래스의 유형인지 확인하기 위해 테스트하는 경우

BOOL test = [self isKindOfClass:[SomeClass class]];

학급 자체에서

-(NSString *) className
{
    return NSStringFromClass([self class]);
}

OBJC:

NSStringFromClass([instance class])

재빠르다

발신인:

String(describing: YourType.self)

보낸 사람 유형:

String(describing: self)

를 사용할 수도 있습니다.[[self class] description]

카테고리를 추가하기만 하면 됩니다.

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 파일에 추가합니다.

Swift에서 classname을 얻는 방법을 찾는 경우 reflect를 사용하여 개체에 대한 정보를 얻을 수 있습니다.

let tokens = split(reflect(self).summary, { $0 == "." })
if let typeName = tokens.last {
    println(typeName)
}

언급URL : https://stackoverflow.com/questions/2217560/getting-name-of-the-class-from-an-instance

반응형