gpt4 book ai didi

objective-c - 以 (@) 符号为前缀的 Objective-C 宏的含义

转载 作者:太空狗 更新时间:2023-10-30 03:16:35 29 4
gpt4 key购买 nike

ReactiveCocoa 框架使用了weakifystrongify 宏,它们都以“@”符号开头。

这是一个例子(来自 file )。

- (RACSignal *)rac_textSignal {
@weakify(self);
return [[[[RACSignal
...
];
}

作为宏名称前缀的 at 符号有什么意义? (注意:我已经检查了宏,它被称为“weakify”,而不是“@weakify”,所以它不仅仅是宏名称!)。

宏本身在这里定义:

https://github.com/jspahrsummers/libextobjc/blob/master/extobjc/EXTScope.h#L45

最佳答案

@开头的宏没有特殊意义。这是在 libextobjc 中完成的,以使 @weakify@strongify 宏看起来更符合语言的其余部分。

从技术上讲,@ 不是宏的一部分。宏只是 weakifystrongify。但是,宏的实际主体是这样编写的,除非以 @ 开头,否则它不会编译。这是通过在宏的开头添加一个空的 @autoreleasepool {},但去掉前导的 @ 来完成的。

关于objective-c - 以 (@) 符号为前缀的 Objective-C 宏的含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20861922/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com