Как получить BOOL из идентификатора

Эвристика Объектно-ориентированного проектирования является большим чтением. Я не мог подавить его.

16
задан Quinn Taylor 5 August 2009 в 04:18
поделиться

2 ответа

-valueForKey: всегда возвращает объект. id - это тип target-c для указателя на любой объект.

Вы можете проверить объект в отладчике. Некоторые полезные команды:

po value
po [value class]

Вы обнаружите, что значение на самом деле является NSNumber, поэтому можете отправить ему сообщение -boolValue , чтобы получить интересующий вас флаг BOOL.

31
ответ дан 30 November 2019 в 15:11
поделиться

Если значение ключа - BOOL, то возвращаемый объект будет NSNumber. Вы можете просто попросить у него boolValue . Вы не можете просто привести объект ( id ) к BOOL, целочисленному или любому другому не объектному типу. Механизм KVC автоматически помещает скаляры в соответствующий тип значения, поэтому вы можете просто запросить у него нужный тип. Возможно, вас заинтересуют документы KVC - они объясняют это более подробно.

9
ответ дан 30 November 2019 в 15:11
поделиться