Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在登录Objective-C宏时使用commercial at?_Objective C_C_Macros - Fatal编程技术网

如何在登录Objective-C宏时使用commercial at?

如何在登录Objective-C宏时使用commercial at?,objective-c,c,macros,Objective C,C,Macros,如何在登录Objective-C宏时使用commercial at 我知道这是不推荐的,但似乎有可能吗?由于libextobjc提供了@weakify、@strongify等功能。libextobjc使用预处理器技巧使您认为它是一个@命令 #define weakify(...) \ try {} @finally {} \ metamacro_foreach_cxt(ext_weakify_,, __weak, __VA_ARGS__) 注意try上缺少的@。 所以@weak

如何在登录Objective-C宏时使用commercial at


我知道这是不推荐的,但似乎有可能吗?由于
libextobjc
提供了
@weakify
@strongify
等功能。

libextobjc
使用预处理器技巧使您认为它是一个
@命令

#define weakify(...) \
    try {} @finally {} \
    metamacro_foreach_cxt(ext_weakify_,, __weak, __VA_ARGS__)
注意
try
上缺少的
@
。 所以
@weakify
扩展为
@try{}@finally{}[注入的代码]


您可以使用相同的技巧,但我建议您坚持使用普通宏。

哦,我明白了。我已经看到了这段代码,但没有注意到try块。谢谢!:)