我一直在寻找答案,但我的关键词 fu 让我失望了。
我有一个在 objc/Xcode 中使用的宏:
#define strongify(source, target) __strong typeof(source) target = source; if(target == nil) NSLog(@"variable was already nil")
这导致我经常需要编写如下代码:
strongify(weakSelf, strongSelf);
if (!strongSelf) return;
所以我想我会用以下内容扩展该宏:
#define strongifyOrReturn(source, target) __strong typeof(source) target = source; if(target == nil) return
Xcode 拒绝自动完成它并抱怨它在编译时不知道它。
但是,如果我不使用 return 关键字,只是 NSLog 仍然使用相同的宏名称,Xcode 会很乐意按照我的要求做,并且新名称会列在自动完成建议中。
我希望你们中的一些人能说出为什么会这样……