我在我的代码中使用了一个简单的宏,我觉得它非常方便和有用
#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 保持非常苗条和快速使用......有什么想法吗?