Как преобразовать объекты NSNumber для вычислительных целей?

Я разрабатываю некоторый код, в котором я использую сканер для получения NSNumbers из строки, например x и y.

Теперь я хочу вычислить что-то простое из x и y, скажем, z = 10.0/(x + y/60.0)/60.0). Я не могу сделать это напрямую, поскольку компилятор не любит обычную арифметическую символику, применяемую к числовым объектам.

Итак, я попытался определить xD и yD, типа double, а затем попробовал преобразование типа

xD = (double) x;  yD = (double) y;

но это также дает ошибку компиляции. Как можно получить объекты NSNumber, преобразованные для использования в обычных арифметических выражениях? Я сделал значительный обзор литературы и не нашел ответа.

Заранее благодарим за помощь.

Джон Донер

Ответ 1

Используйте "value" методы класса NSNumber, такие как doubleValue.

// Initialized to something earlier
NSNumber * x, y;

//Convert NSNumbers to double
double xD = [x doubleValue]; 
double yD = [y doubleValue];

// You can now use regular arithmetic operators
double zD = 10.0 / ((x + y / 60.0) / 60.0);