프로그래밍/iOS

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

삶의안식처 2015. 5. 7. 16:10

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

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




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]);


위와 같이 알 수 있다.