【问题标题】:Incompatible inter to pointer conversion不兼容的整数到指针的转换
【发布时间】:2013-02-28 09:59:09
【问题描述】:

以下代码生成编译器警告(代码下方)

NSUInteger positionat = [_bhkButtons indexOfObject:sender];
BOOL val = (BOOL) [_searchModel.BHkNo objectAtIndex:positionat];
val = !val;

[_searchModel.BHkNo insertObject:val atIndex:positionat];

不兼容的整数到指针转换'BOOL'(又名'signed char')到'id'类型的参数

我是 Objective - C 的新手。请帮忙。

【问题讨论】:

    标签: ios objective-c xcode


    【解决方案1】:

    由于BOOL 是一种原始数据类型并且数组接受对象,因此您必须对BOOL 变量进行装箱/包装。您可以使用NSNumber 类,如下所示。

    [_searchModel.BHkNo insertObject:[NSNumber numberWithBool:val] atIndex:positionat];
    

    【讨论】:

    • 谢谢。但是我如何获得 val 呢?我的意思是我应该将 [_searchModel.BHKNo objectAtIndex:positionat] 类型转换为 NSNumber 吗?它给了我错误。
    • 我想要的是数组中布尔值的反转
    • NSLog(@"value is %@",_searchModel[positionat]) 将显示 val。
    • 使用这个进行拆箱/拆包,BOOL val = [[_searchModel.BHkNo objectAtIndex:positionat] boolValue];
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-03
    相关资源
    最近更新 更多