본문 바로가기

프로그래밍/iOS

[ios] method를 호출한 class알아내기

디버그를 하면 디버그 창에는 뜨지만,

소스코드 상으론 알 수 없을까 해서 궁금해서 잠시 검색




NSString *sourceString = [[NSThread callStackSymbols] objectAtIndex:1];

    // Example: 1   UIKit                               0x00540c89 -[UIApplication _callInitializationDelegatesForURL:payload:suspended:] + 1163

    NSCharacterSet *separatorSet = [NSCharacterSet characterSetWithCharactersInString:@" -[]+?.,"];

    NSMutableArray *array = [NSMutableArray arrayWithArray:[sourceString  componentsSeparatedByCharactersInSet:separatorSet]];

    [array removeObject:@""];


    NSLog(@"Stack = %@", [array objectAtIndex:0]);

    NSLog(@"Framework = %@", [array objectAtIndex:1]);

    NSLog(@"Memory address = %@", [array objectAtIndex:2]);

    NSLog(@"Class caller = %@", [array objectAtIndex:3]);

    NSLog(@"Function caller = %@", [array objectAtIndex:4]);

    NSLog(@"Line caller = %@", [array objectAtIndex:5]);


위와 같이 알 수 있다. 

'프로그래밍 > iOS' 카테고리의 다른 글

[iOS] background에서 작업하기  (0) 2015.05.14
[iOS] UINavigationController  (0) 2015.05.13
[iOS] UIImage에 UILabel 추가하기  (0) 2015.05.06
[iOS] UIAlertController iOS8.3 버그  (0) 2015.04.29
[iOS] Landscape 카메라 만들기  (0) 2015.04.29