반응형
인스턴스에서 클래스 이름 가져오기
다음과 같은 문제가 있습니다.클래스의 인스턴스를 전달받았는데 이 인스턴스의 클래스 이름을 알고 싶습니다.이거 어떻게 구하지?
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
반응형
'programing' 카테고리의 다른 글
SQL 소수점 2자리 반올림 (0) | 2023.04.12 |
---|---|
대규모 SQL 스크립트 실행(GO 명령 사용) (0) | 2023.04.12 |
더 많은 컨텍스트 Swift가 없으면 표현 유형이 모호합니다. (0) | 2023.04.12 |
MVVM에서 View Model 또는 Model은 INotify를 구현해야 합니다.속성이 변경되었습니까? (0) | 2023.04.12 |
SQL Server - 여기서 "sys" 입니다.기능?" (0) | 2023.04.12 |