我有一个带有布尔输入分配器的QCView。当我尝试[qcview setValue:NO forInputKey:@"showCube"];
时,它按预期工作,输入设置为NO
。但是,当我尝试[qcview setValue:YES forInputKey:@"showCube"];
时,我得到了EXC_BAD_ACCESS
。我尝试使用1,YES和TRUE,它们都给出了同样的错误。这可能是导致这个神秘错误的问题吗?
由于
答案 0 :(得分:3)
setValue:forInputKey:
期望value
成为一个对象(而不是您提供的标量)。
尝试
[qcview setValue:[NSNumber numberWithBool:YES] forInputKey:@"showCube"];
或
[qcview setValue:kCFBooleanTrue forInputKey:@"showCube"];
(独立标量NO
适用于这种情况,因为它的计算结果为0
,相当于Objective-C中的nil
,在某些情况下,它可以在不爆炸的情况下接收消息但实际上你应该使用NSNumber构造函数或Core Foundation常量之一。)