В чем проблема с использованием NSNumber
? Если вы знаете, что такое «тип» числа (то есть, целое число, число с плавающей запятой), вы можете позвонить -[NSNumber integerValue]
или -[NSNumber floatValue]
, чтобы получить необходимый вам примитив.
Если вы не знаете, какой тип примитива будет возвращен, вы можете использовать свойство objCType
экземпляра NSNumber
, чтобы получить строку в стиле C, содержащую директивы @encode()
. Они показывают, как данные Objective C кодируются. См. Тип кодирования для получения дополнительной информации.
Исходя из возвращаемой строки кодирования типа C, вы можете ответить в соответствии с тем, какой тип примитива действительно хранится в вашем экземпляре NSNumber
, и использовать вышеупомянутые методы для получения правильного значения.