Ben*_*ter 7 macros weak-references self ios
我有下面的宏的问题,我用它来记录各种信息
#define JELogVerbose(fmt, ...)
DDLogVerbose((@"%@ %@ - " fmt), NSStringFromClass([self class]),
NSStringFromSelector(_cmd), ##__VA_ARGS__)
Run Code Online (Sandbox Code Playgroud)
当在块内部使用这个最终宏时会出现问题,它显然会强烈捕获自身,这可能是有问题的.
以下是解决方案的一些要求:
__FILE__或__PRETTY_FUNCTION__因为它们捕获将捕获超类而不是子类.因此,对于用于创建许多实例的类的抽象,日志记录不区分每个实例.捕获当前类是绝对必要的小智 1
也许使用这个: https: //github.com/jspahrsummers/libextobjc
#import "EXTScope.h"
/* some code */
@weakify(self);
[SomeClass runOnBackgroundCode:^{
@strongify(self);
/* do something */
}];
/* some code */
Run Code Online (Sandbox Code Playgroud)
我使用这个解决方案已经有一段时间了——不需要添加 weekSelf 或其他任何东西。
| 归档时间: |
|
| 查看次数: |
775 次 |
| 最近记录: |