ios 修复Xcode中的“词法或预处理器问题-使用了扩展”警告?

agxfikkp  于 5个月前  发布在  iOS
关注(0)|答案(2)|浏览(81)

我继承了一个新项目,它有几个保留周期警告,这是由在各个块中隐式保留self引起的。
为了解决这些问题,我写了

__weak typeof(self) weakSelf = self;

字符串
创建一个弱引用以在块中使用。
然而,Xcode v.5.1.1给出了一个神秘的警告,

Lexical or Preprocessor Issue 
Extension used


我在这里不知所措--这是什么意思,我怎么才能摆脱它呢?

3hvapo4f

3hvapo4f1#

如果在构建设置中启用了“学究气”,则会收到此警告。从此设置的“快速帮助”中:
描述发布严格的ISO C和ISO C要求的所有警告;拒绝所有使用禁止扩展名的程序,以及其他一些不遵循ISO C和ISO C的程序。对于ISO C,遵循所使用的任何-std选项指定的ISO C标准的版本。[GCC_WARN_PEDANTIC,-pedantic]
我不是(ISO)C标准的Maven,但根据https://gcc.gnu.org/onlinedocs/gcc/Typeof.html
如果你写的头文件必须在包含在ISO C程序中时才能工作,那么写__typeof__而不是typeof。参见备用关键字。
http://clang.llvm.org/docs/UsersManual.html
解析器在gnu* 模式下识别“asm“和“typeof“为关键字;变体“__asm__“和“__typeof__“在所有模式下都能识别。
如果你不想禁用警告,你可以使用__typeof__

__weak __typeof__(self) weakSelf = self;

字符串

6pp0gazn

6pp0gazn2#

您可以通过使用-Wno参数关闭CLANG-clock,特别是对于此“extension used”警告,
-Wno-language-extension-token
欢呼

相关问题