在我的搜索中,我找到了有关此的 clang 文档; Clang 语言扩展
我的 Xcode 版本是 4.6.2,我尝试了不带 ARC 的 LLVM-gcc,以确保 gcc 编译器仍然可以使用扩展。
我的 C/C++/Objective-C 编译器选项是;LLVM GCC 4.2 和 Apple LLVM 编译器。
这两个属性都位于 .h 头文件中。LLVM GCC 和 APPLE LLVM 都采取这两种风格
-(void)oldMethod __attribute((deprecated()));
//or
-(void)oldMethod2 DEPRECATED_ATTRIBUTE;
Run Code Online (Sandbox Code Playgroud)
LLVM GCC 抱怨以下方法格式,而 Apple LLVM 工作正常(这实际上回答了你的问题。你的编译器正在使用 LLVM GCC 或更旧的东西)
-(void)oldMethod __attribute((deprecated("Don't use Old Method")));
Run Code Online (Sandbox Code Playgroud)
长话短说,在搞乱这些构建设置和更改之前,请务必保留备份。
检查正确的 Xcode 是否正在运行(最新的是 4.6.2),我最终遇到了不同版本的混乱,不得不进行清理。
检查“构建选项”下的项目设置中可用的编译器版本。(我在上面指出了这个答案)
对于较旧的项目,您可能需要使用 ARC 检查重构并转换为现代 Objective-C。请务必保留备份,对于较大的项目,这可能会很麻烦。(编辑->重构->现代 Objective-C)视频;WWDC 2011 使用自动引用计数进行重构 WWDC 2012 现代 Objective-C 视频 https://developer.apple.com/videos/wwdc/2012/
注意:现代 Objective-C 重构将更改为 Apple-LLVM 编译器。随着其他变化。
如果这个答案成为您问题的核心,请通过投票来帮助我!蒂亚!
| 归档时间: |
|
| 查看次数: |
1051 次 |
| 最近记录: |