1

我在我的代码中使用了一个简单的宏,我觉得它非常方便和有用

#define LogFunc NSLog(@"%p %s",self,__func__);

它给了我自指针地址和被调用的函数。

@implementation MyGreatClass

-(void)foo {
  LogFunc
}

-(void)bar {
  _supposeIamAnIVarBlock = ^(){
    LogFunc
  }

  _supposeIamAnIVarBlock();
}

@end

2016-03-01 16:35:01.990 MyApp[3447:2340168] 0x13102ecb0 -[MyGreatClass foo]

2016-03-01 16:35:01.990 MyApp[3447:2340168] 0x13102ecb0 -__27-[MyGreatClass 栏]

问题是,当我在块中使用这个宏时,我可能会遇到一个保留周期,因为 self 将被强烈捕获。我知道我可以使用__weak__block避免保留循环,但这会使我的代码崩溃。我希望 LogFunc 保持非常苗条和快速使用......有什么想法吗?

4

0 回答 0