10

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

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

我得到:警告:传递 'setValue:forKeyPath:' 的参数 1 使指针从整数而不进行强制转换。

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

该怎么办?

4

2 回答 2

29

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

答案就在“NSValue.h”中:

[NSNumber numberWithBool: aBool]

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

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

于 2009-07-02T22:28:24.537 回答
1

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

更多信息 llvm Objective-C 文字

于 2013-08-20T12:19:55.260 回答