[아이폰:오브젝티브C] 형식 비교하기
아궁. 역시 언어가 바뀌면, 가장 근본적인 문제로 인해서 머리를 뽑게 된다..
아래 예제를 참조하자..
자바의 class 속성과 비슷하게 오브젝티브C도 class 라는 메소드를 제공한다.
하지만, typeof({instance}) 형식을 제공하지 않고, 인스턴스에 대해서도 동일하게 호출하여 처리한다.
주) NSString의 경우에는 NSString을 상속받아 구현한 NSCFString 등의 객체가 실제로 인스턴스의 형식이
되어, isKindOfClass 를 써야하기도 한다.
사용법은 아래를 참조하자.
NSArray *viewControllers = ((UITabBarController*)self.tabBarController).viewControllers;
NSUInteger i, count = [viewControllers count];
for (i = 0; i < count; i++) {
NSObject * obj = [viewControllers objectAtIndex:i];
if ( [obj class] == [UINavigationController class]) {
// if ( [obj isKindOfClass:[UINavigationController class]) {
NSLog(@"UINavigationController");
UINavigationController *navCtrl = (UINavigationController*)obj;
PopViewController* popViewCtrl = [[PopViewController alloc] initWithNibName:@"PopViewController" bundle:nil];
[navCtrl presentModalViewController:popViewCtrl animated:NO];
}
}