The purpose of defining a macro like this is to add an @ symbol when using it, because the usage of autoreleaasepool is like this:
@autoreleasepool {
}
So using this trick when defining macros will allow you to use it like this when using macros
@weakify(self),
@strongify(self),
As for the redundant @autoreleasepool {}和@try {} @finally {}code introduced by the macro definition, it will be optimized away by the compiler because it does nothing, so it will not have an impact on the final generated code.
The purpose of defining a macro like this is to add an @ symbol when using it, because the usage of autoreleaasepool is like this:
So using this trick when defining macros will allow you to use it like this when using macros
As for the redundant
@autoreleasepool {}
和@try {} @finally {}
code introduced by the macro definition, it will be optimized away by the compiler because it does nothing, so it will not have an impact on the final generated code.