我继承了一个新项目,它有几个保留周期警告,这是由在各个块中隐式保留self引起的。为了解决这些问题,我写了
__weak typeof(self) weakSelf = self;
字符串创建一个弱引用以在块中使用。然而,Xcode v.5.1.1给出了一个神秘的警告,
Lexical or Preprocessor Issue Extension used
型我在这里不知所措--这是什么意思,我怎么才能摆脱它呢?
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__:
__typeof__
typeof
asm
__asm__
__weak __typeof__(self) weakSelf = self;
字符串
6pp0gazn2#
您可以通过使用-Wno参数关闭CLANG-clock,特别是对于此“extension used”警告,-Wno-language-extension-token欢呼
2条答案
按热度按时间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__
:字符串
6pp0gazn2#
您可以通过使用-Wno参数关闭CLANG-clock,特别是对于此“extension used”警告,
-Wno-language-extension-token
欢呼