【问题标题】:Pointer from integer without a cast issue来自整数的指针,没有强制转换问题
【发布时间】:2011-04-13 08:21:30
【问题描述】:

在我定义的.h 文件中:

BOOL *internetActive;
BOOL *hostActive;

和:

@property(nonatomic) BOOL *internetActive;
@property(nonatomic) BOOL *hostActive;

在我的 .m 文件中,我合成它们并设置值:

   switch (internetStatus) {
        case NotReachable:{
            self.internetActive = NO;
            break;
        }
        case ReachableViaWiFi:{
            self.internetActive = YES;
            break;
        }
        case ReachableViaWWAN:{
            self.internetActive = YES;
            break;
        }
    }

但我收到了几个警告。首先在我得到的每个= YES

与指针不兼容的整数 转换为 BOOL(又名有符号字符) 来自 BOOL(又名签名字符)

在 break 语句之后我得到一个:

传递参数 1 setInternetActive 使指针从 没有强制转换的整数

这是什么意思,我该如何解决?

【问题讨论】:

  • 这意味着您已将实例变量/声明的属性声明为指向BOOL 的指针,并且您将它们用作普通的BOOL。正如已经回答的那样,您不需要指向BOOL 的指针。

标签: objective-c xcode


【解决方案1】:

BOOL internetActive 不是BOOL *internetActive;

祝你好运

【讨论】:

    【解决方案2】:

    如果你真的想要一个指向对象的指针,那么你可以将它们存储在NSArray/NSDictionary 然后使用NSNumber

    @property(nonatomic, retain) NSNumber *internetActive;
    @property(nonatomic, retain) NSNumber *hostActive;
    

    在你的 *.m 中

    switch (internetStatus) {
            case NotReachable:{
                self.internetActive = [NSNumber numberWithBool:NO];
                break;
            }
            case ReachableViaWiFi:{
                self.internetActive = [NSNumber numberWithBool:YES];;
                break;
            }
            case ReachableViaWWAN:{
                self.internetActive = [NSNumber numberWithBool:YES];;
                break;
            }
        }
    

    【讨论】:

      猜你喜欢
      • 2019-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多