你如何在Cocoa / Obj-C中为KVC包装一个BOOL?

时间:2009-07-02 22:21:41

标签: objective-c cocoa cocoa-touch key-value-coding

我正在使用KVC来迭代几个视图。设置BOOL属性时遇到问题:

[self setValue:YES forKeyPath:[NSString stringWithFormat:@"myView%d.userInteractionEnabled", n]];

我得到:警告:传递'setValue:forKeyPath:'的参数1使得整数指针没有强制转换。

我找不到[NSValue valueWithBool:YES]或类似的东西。

怎么办?

2 个答案:

答案 0 :(得分:29)

编译器正在生成警告,因为-setValue:forKeyPath:的第一个参数需要和对象。是不是一个对象。

答案就在“NSValue.h”中:

[NSNumber numberWithBool: aBool]

Xcode的更高版本允许您使用文字语法:

[foo setValue:@YES forKey:@"bar"]

答案 1 :(得分:1)

您也可以使用Literal表达式 @(YES)

了解更多信息 llvm Objective-C Literals