美文网首页iOS 的那些事儿
iOS 获取当前方法的调用者

iOS 获取当前方法的调用者

作者: 你猜我猜不猜你猜我猜不猜 | 来源:发表于2018-01-31 10:09 被阅读777次

获取堆栈信息后解析

  // 此方法转自别处
  NSArray *syms = [NSThread  callStackSymbols]; 
  NSLog(@"<%@ %p> %@ - caller: %@ ", [self class], self, NSStringFromSelector(_cmd),[syms objectAtIndex:1]);
  NSString *string = [[[syms objectAtIndex:1] componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"[]"]] objectAtIndex:1];

举个例子
创建类A类B


image.png

类A:

@interface A : NSObject

- (void)callB;

@end

@implementation A

- (void)callB{
    B *b = [B new];
    [b method];
}
@end

类B:

@interface B : NSObject

- (void)method;

@end
@implementation B
- (void)method{
    NSArray *syms = [NSThread  callStackSymbols];
    NSLog(@"<%@ %p> %@ - caller: %@ ", [self class], self, NSStringFromSelector(_cmd),[syms objectAtIndex:1]);
}
@end

输出LOG

2018-01-31 09:58:25.568186+0800 Test[23788:4600557] 
<B 0x600000018490> method - caller: 1   Test 0x000000010bc999a5 -[A callB] + 69
[A callB]

B类method方法在A类callB方法调用

直接获取到字符串A callB

 NSString *string = [[[syms objectAtIndex:1] componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"[]"]] objectAtIndex:1];

相关文章

  • super, superClass, class

    class::获取当前方法调用者的类superclass:获取当前方法调用者的父类 重点:和self不一样,sup...

  • iOS 获取当前方法的调用者

    获取堆栈信息后解析 举个例子创建类A类B 类A: 类B: 输出LOG B类method方法在A类callB方法调用...

  • 概念解析

    1 super、superClass、class self -> 当前对象class:获取当前方法调用者的类。su...

  • self class super superclass

    [self class]当前类调用方法 调用者是当前类 [self superclass] 调用父类的方法 调用者...

  • [self class]、[self superclass]、[

    self:当前调用者,并不是放到哪个类中就是哪个类,有可能是子类。class:获取方法调用者的类对象supercl...

  • super, superClass, class

    class: 获取方法调用者类 superclass: 获取方法调用者 父类 super:super不是一个指针,...

  • super,superClass,class

    class:获取方法调用者的类 superclass:获取方法调用者父类 super:编译指示符,仅仅表示去调用父...

  • instanceof的使用

    在父类的方法中需要判断当前调用者用 判断当前调用者是谁时用

  • class super superclass const sta

    class super superclass class:获取当前方法调用者的类super:仅仅是一个编译指示器,...

  • NSDate & NSCalendar的基本使用

    NSDate 在iOS的开发过程中,总是要和NSDate打交道,掌握常用方法很有必须要 获取当前时间 获取当前时间...

网友评论

    本文标题:iOS 获取当前方法的调用者

    本文链接:https://www.haomeiwen.com/subject/rkhkzxtx.html