Objective c 忽略Xcode 4中的问题类型
我对xcode4有点问题。 我在我的项目中遇到此类代码的问题:Objective c 忽略Xcode 4中的问题类型,objective-c,xcode,xcode4,issue-tracking,Objective C,Xcode,Xcode4,Issue Tracking,我对xcode4有点问题。 我在我的项目中遇到此类代码的问题: - (id)init { if (self = [super init]) { } return self; } 我知道我可以用以下方法来修复它: - (id)init { if ((self = [super init])) { } return self; } 或 但问题是,我在一个特殊的项目中使用了大量的外部库,我不想编辑这些文件,不想将更新推送到github或其他什么地方 那么,是否有一个选项可
- (id)init {
if (self = [super init]) {
}
return self;
}
我知道我可以用以下方法来修复它:
- (id)init {
if ((self = [super init])) {
}
return self;
}
或
但问题是,我在一个特殊的项目中使用了大量的外部库,我不想编辑这些文件,不想将更新推送到github或其他什么地方
那么,是否有一个选项可以在xcode中停用此类通知/问题发布?据我所知,您有两个选项:
- 切换到GCC作为编译器,因为LLVM默认会检查此警告,GCC不会
- 将
-Wno惯用括号添加到LLVM编译器警告/其他警告标志
您应该使用
if(self==[super init])
而不是if(self=[super init])
=
用于向变量添加值,=
表示等于?警告说明了什么?我没有收到此代码的警告。我认为if子句中的赋值是代码气味。它说使用赋值结果作为条件,而不使用括号。是的,我也不喜欢这种风格。但是第三方lib确实使用了这个,我使用GCC。试图在GCC上使用-Wno惯用括号
会引发一个错误cc1obj:error:unrecogned命令行选项“-Wno惯用括号”
@choise,不,这是一个特定于clang/LLVM的标志,在GCC中不起作用。有趣的是,你得到了GCC的错误。您确定每个子项目都设置为带有GCC的编译器吗?我刚刚尝试使用GCC4.2,但没有警告。切换到LLVM 2.0是没有选择的?您确定编译器设置没有被目标覆盖吗?我建议创建一个简单的应用程序模板应用程序,并使用init代码尝试不同的编译器,看看它的行为是否相同。仍然没有运气。明天将重试=/无法对我的项目执行此操作。在项目的目标和构建设置中,我使用GCC4.2。我接受你的回答,因为我认为这是正确的。也许xcode4仍然有点问题。谢谢
- (id)init {
self = [self init];
if (self) {
}
return self;
}