0

我一直在寻找答案,但我的关键词 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 会很乐意按照我的要求做,并且新名称会列在自动完成建议中。

我希望你们中的一些人能说出为什么会这样……

4

1 回答 1

0

任何有类似问题的人都应该尝试看看他们是否被 Xcode foobar'ed。在我的 MBP 休眠一夜之后,它现在会自动完成和编译,并且通常很开心。

所以要从中吸取教训,在你发布关于 SO 的问题之前重新启动 Xcode 并重新测试。叹。

于 2013-11-01T08:30:31.543 回答