iPhone 유형을 확인하는 방법은 무엇입니까?
개체의 유형을 확인하고 싶습니다. 어떻게 할 수 있습니까?
시나리오는 내가 물건을 얻는 것입니다. 해당 개체가 A 유형이면 몇 가지 작업을 수행하십시오. B 유형이면 몇 가지 작업을 수행하십시오. 현재 개체의 유형은 A와 B의 부모 인 C입니다.
두 개의 클래스 AViewController
와 BViewController
. 내가 물건은 물건 UIViewController
. 이제 개체가 AViewController
또는 인지 확인하는 방법은 BViewController
무엇입니까?
if([some_object isKindOfClass:[A_Class_Name class]])
{
// do somthing
}
NSObject에는 클래스를 확인할 수 있습니다.
먼저 -class
object-의 클래스를 반환 할을 구석으로입니다. 이것은 AViewController 또는 BViewController를 반환합니다.
그리고이 두 가지 방법을이다, -isKindofClass:
하고 isMemberOfClass:
.
-isKindOfClass:
전달 된 클래스와 비교하고 클래스가 동일한 유형인지 또는 주어진 클래스의 하위 클래스인지 여부에 따라 true 또는 false를 반환합니다.
-isMemberOfClass:
전달 된 클래스와 비교하고 클래스가 지정된 클래스와 엄격하게 동일한 클래스인지 여부에 따라 또는 거짓을 반환합니다.
Objective-C에서보다 응용 패턴은 객체가 관심있는 메소드에 응답하는지 확인하는 것입니다. 예 :
if ([object respondsToSelector:@selector(length)]) {
// Do something
}
if ([object conformsToProtocol:@protocol(NSObject)]) {
// Do something
}
참고 URL : https://stackoverflow.com/questions/1368124/iphone-how-to-check-the-type-of-an-object
'ProgramingTip' 카테고리의 다른 글
asp.net mvc보기 모델의 언어 (0) | 2020.11.23 |
---|---|
OpenVPN 연결 실패 /이 시스템의 모든 TAP-Win32 어댑터가 현재 사용 중입니다. (0) | 2020.11.23 |
프로그래밍 방식으로 PopupMenu 메뉴 항목 설정 (0) | 2020.11.22 |
오류 : 기호 변수 abc_ic_ab_back_mtrl_am_alpha를 사용할 수 없습니다. (0) | 2020.11.22 |
'this'포인터는 컴퓨터 메모리에 어디에 저장합니까? (0) | 2020.11.22 |