我正在使用 KVC 来迭代一些视图。设置 BOOL 属性时遇到问题:
[self setValue:YES forKeyPath:[NSString stringWithFormat:@"myView%d.userInteractionEnabled", n]];
我得到:警告:传递 'setValue:forKeyPath:' 的参数 1 使指针从整数而不进行强制转换。
我找不到 [NSValue valueWithBool:YES] 或类似的东西。
该怎么办?
我正在使用 KVC 来迭代一些视图。设置 BOOL 属性时遇到问题:
[self setValue:YES forKeyPath:[NSString stringWithFormat:@"myView%d.userInteractionEnabled", n]];
我得到:警告:传递 'setValue:forKeyPath:' 的参数 1 使指针从整数而不进行强制转换。
我找不到 [NSValue valueWithBool:YES] 或类似的东西。
该怎么办?
编译器正在生成警告,因为-setValue:forKeyPath:
期望和对象的第一个参数。YES 不是一个对象。
答案就在“NSValue.h”中:
[NSNumber numberWithBool: aBool]
更高版本的 Xcode 允许您使用文字语法:
[foo setValue:@YES forKey:@"bar"]
您也可以使用文字表达式@(YES)
更多信息 llvm Objective-C 文字