我在代码中使用了一个简单的宏,我发现它非常方便实用
#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 bar]
问题是,当我在块中使用这个宏时,我可能会遇到一个保留周期,因为将强烈捕获self。我知道我可以使用__weak
或__block
来避免保留周期,但这样会破坏我的代码。我希望LogFunc保持非常纤薄和快速使用......任何想法?