10

I'm using KVC to iterating through a few views. Having trouble setting BOOL properties:

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

I get: warning: passing argument 1 of 'setValue:forKeyPath:' makes pointer from integer without a cast.

There is no [NSValue valueWithBool:YES] or similar that I can find.

What to do?

Meltemi
  • 37,979
  • 50
  • 195
  • 293

2 Answers2

30

The compiler is generating a warning because the first argument of -setValue:forKeyPath: expects and object. YES is not an object.

The answer is right there in "NSValue.h":

[NSNumber numberWithBool: aBool]

Later versions of Xcode allow you to use the literal syntax:

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

NSGod
  • 22,699
  • 3
  • 58
  • 66
Jim Correia
  • 7,064
  • 1
  • 33
  • 24
1

You also can use Literal expression @(YES)

For More Info llvm Objective-C Literals

TheGhost
  • 159
  • 1
  • 6