Как вы завершаете BOOL для KVC в Cocoa/Obj-C?

Я использую KVC для повторения нескольких просмотров. Не удалось установить свойства BOOL:

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

Я получаю: предупреждение: передача аргумента 1 из 'setValue: forKeyPath:' делает указатель из целого без литья.

Нет [NSValue valueWithBool: YES] или аналогичного, что я могу найти.

Что делать?

Ответ 1

Компилятор генерирует предупреждение, потому что первый аргумент -setValue:forKeyPath: ожидает и объект. ДА не является объектом.

Ответ находится прямо в "NSValue.h":

[NSNumber numberWithBool: aBool]

Более поздние версии Xcode позволяют использовать буквенный синтаксис:

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

Ответ 2

Вы также можете использовать выражение Literal @(ДА)

Дополнительная информация llvm Objective-C Литералы