gpt4 book ai didi

objective-c - if 语句中的赋值警告?

转载 作者:行者123 更新时间:2023-12-04 03:30:50 24 4
gpt4 key购买 nike

有没有办法在我分配变量而不是检查相等性时收到警告?有很多次我不小心分配了,而不是比较,如果有警告就太好了!

有没有一种 Xcode 可以警告我而无需将编码样式更改为:

if (YES == aVariable) {...}

最佳答案

在大多数情况下,如果您在 if 语句中使用 = 而不是 ==,Xcode 会警告您。如果您没有收到警告,请告诉我们您使用的 Xcode 版本、项目的历史以及您从默认设置更改了哪些build设置。

我的测试:我在 Xcode 4.5.2 中创建了一个全新的 iOS 应用程序并且没有更改任何build设置。我只是向 application:didFinishLaunchingWithOptions: 添加了一些代码来触发警告。在这里:

Using the result of an assignment as a condition without parentheses

您可以通过设置编译器的 -Wno-parentheses 标志来禁用警告(但您为什么要这么做?)。您可以通过在赋值周围添加一组额外的括号来抑制特定情况下的警告:

if ((x = 7)) {

默认情况下,有两种情况您不会收到警告。首先,在 init 方法中,您可以分配给 self,如下所示:

- (id)init {
if (self = [super init]) { // no warning by default
...

其次,在任何上下文中,您都可以分配 nextObject 选择器的结果,如下所示:

while (object = [enumerator nextObject]) {    // no warning by default

在这些情况下,您可以通过设置编译器的 -Widiomatic-parentheses 标志来启用警告。

关于objective-c - if 语句中的赋值警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13227868/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com